2013-03-25 95 views
0

我是新來的node.js世界。我正在嘗試編寫一個REST服務,並且我堅持使用會話管理。所以我創建了一個單獨的應用程序,以查看是否可以使會話正常工作,但不是,這裏是代碼。該req.session.username總是不確定的:快遞會話管理不起作用

var express = require('express'); 
var url = require('url'); 

var app = express() 
app.use(express.cookieParser('Hiren')) 
app.use(express.session({ secret: 'HirenAdesara' })) 
app.use(express.bodyParser()) 
app.use(app.router) 

//Sniff HTTP 
app.all('*', function(req, res, next) { 
    //Check for Authentication 
      console.log(req.session) 
    if ((!(/^\/auth/g.test(req.url))) && (!req.session)) { 
     console.log('in app.all: Unauthorized') 
     res.send(401) 
    } 
    else 
    { 
     return next() 
    } 
}) 

app.post('/auth', function(req, res) { 
       var query = req.body 
       console.log('Query' + JSON.stringify(query)) 
       username = query.username; 
       password = query.password; 
       if(username == 'Hiren' && password == 'Adesara') 
       { 
        req.session.username = 'Hiren'; 
        console.log('New Session Created..') 
        res.send(200) 
       } 
       else 
       { 
        console.log('New session could not be created.') 
        res.send(401) 
       } 
}) 

app.get('/projects', function(req,res) { 
    console.log('inside projects' + req.session.username); 
    res.send(req.session.username); }) 

app.listen(2048) 
console.log('Listening on port 2048...') 

它不工作,我不知道什麼是錯在這裏。

回答

2

星在你的app.get移動3行(「/」 ...)之外吧:

var express = require('express'); 
var querystring = require('querystring'); 

var app = express() 
app.use(express.cookieParser('Hiren')); // This line 
app.use(express.session({ secret: 'HirenAdesara' })); // This line 
app.use(express.bodyParser()); // This line 

app.get('/', function(req, res){ 
    res.send('hello from the root page'); 
}) 

// the rest of your code 
+0

這解決了我的問題,爲什麼同樣的事情,如果我把不會工作的任何想法他們在'app.configure(函數(){'?? – Hadesara 2013-03-25 18:30:02

+0

唯一的補充是這些行'app.use(express.logger('dev'))' – Hadesara 2013-03-25 18:36:05

+0

其實,它仍然無法正常工作。在主要的代碼反映你所建議的變化,並添加一些檢查點。想想? – Hadesara 2013-03-25 22:24:50