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...')

それは機能せず、ここで何が悪いのかわかりません。

4

1 に答える 1

3

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
于 2013-03-25T18:11:43.140 に答える