Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 快速会话管理不工作_Node.js_Session_Express_Session Cookies - Fatal编程技术网

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命令出现了几个问题,现在一切正常。很好,我很高兴您能够解决它。