Node.js 快速会话管理不工作
我对Node.js 快速会话管理不工作,node.js,session,express,session-cookies,Node.js,Session,Express,Session Cookies,我对node.js这个世界还不熟悉。我正在尝试编写一个REST服务,我被会话管理所困扰。因此,我创建了一个单独的应用程序,只是想看看我是否可以让会话正常工作,但事实并非如此,下面是代码。req.session.username始终未定义: var express = require('express'); var url = require('url'); var app = express() app.use(express.cookieParser('Hiren')) app.use(ex
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...')
它不起作用,我不知道这里出了什么问题。通过移动应用程序中的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
通过移动应用程序中的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
这就解决了我的问题,如果我把它们放在
app.configure(function(){
?)中,你知道为什么同样的东西不起作用吗?除了这一行之外,还有app.use(express.logger('dev'))
实际上,它仍然不起作用。我已经更新了主要代码,以反映您建议的更改,并添加了一些检查点。想法?呸..谢谢Hector。我的curl命令出现了几个问题,现在一切正常。太好了,我很高兴您能够解决。这解决了我的问题,知道为什么会出现同样的问题吗如果我将它们放在app.configure(function(){
?)中,g将不起作用。除了这些之外,还有一行app.use(express.logger('dev'))
实际上,它仍然不起作用。我主要更新了代码,以反映您建议的更改,并添加了一些检查点。想法?呸..谢谢Hector。我的curl命令出现了几个问题,现在一切正常。很好,我很高兴您能够解决它。