当在路线上设置与快速会话的会话时,对于其他路由它是空的

时间:2016-09-22 22:53:45

标签: node.js express routes mocha express-session

当我在路线上设置会话并尝试在另一条路线中访问它时,会话为空。

帐户路线:

router.post('/login', function(req, res){
   res.setHeader('Access-Control-Allow-Credentials', 'true')

   req.session.user = req.body._email;
   res.send({error: false});

});

在这里,它是空的。用户路线:

router.get('/me', function(req, res){
   if(!req.session.user){
      res.status(500).send({error:true})
   }else{
      res.send({user: req.session.user})
   }
});

我正在使用快递会话。 在我的App.js中:

app.use(session({
   secret: 's3cr3t',
   name : 'myName'
   })
);
app.use(bodyParser.json());
app.use(validator()); 
express.bodyParser()!
app.use(bodyParser.urlencoded({extended: true}));
app.use('/user', user);
app.use('/account', account);
app.use('/assets', express.static(__dirname +'/public/assets'));

在mocha上试试

it('should create session', function(done) {
    chai.request(server)
        .post('/api/v1/account/login')
        .send({_email: 'test@test.com', _password: 'testtest'})
        .end(function(err, res){
            chai.request(server)
                .get('/api/v1/user/me')
                .end(function(err, res2){
                    res2.should.have.status(200);
                    done();
                });
        });
});

总是返回状态500.我已经在我的控制台上打印了req.session并且它是空的。

0 个答案:

没有答案