2013-03-25 84 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