Javascript 向浏览器发送cookie

Javascript 向浏览器发送cookie,javascript,node.js,express,passport.js,Javascript,Node.js,Express,Passport.js,我已经使用angular、express和passport.js在一个现有项目中实现了一个简单的登录系统,该项目使用中的文件结构和编码实践 目前,我已成功注册并登录用户。但是,当我刷新页面时,用户将注销。我知道我需要在浏览器上存储cookie以使其正常工作,我还知道如何在代码中实现这一点。我的问题是把它放在哪里 在myroutes.js中,我有以下内容: var express = require('express'), auth = require('./auth'); var rou

我已经使用angular、express和passport.js在一个现有项目中实现了一个简单的登录系统,该项目使用中的文件结构和编码实践

目前,我已成功注册并登录用户。但是,当我刷新页面时,用户将注销。我知道我需要在浏览器上存储cookie以使其正常工作,我还知道如何在代码中实现这一点。我的问题是把它放在哪里

在my
routes.js
中,我有以下内容:

var express = require('express'),
    auth = require('./auth');
var router = express.Router();


var tools = require('../controllers/tools');
router.get('/api/tools/category/:name', tools.category);
router.get('/api/tools/:id', tools.show);
router.get('/api/tools', tools.all);
router.post('/api/tools', tools.create);
// router.get('api/search/:term', tools.search);

var users = require('../controllers/users');
router.get('/api/users/:id', users.show);
router.get('/api/users', users.all);
router.post('/api/users', users.create);

// Session Routes
var session = require('../controllers/session');
router.get('/api/session', auth.ensureAuthenticated, session.session);
router.post('/api/session', session.login);
router.delete('/api/session', session.logout);

module.exports = router;
在angular passport repo中,作者在文件末尾添加了另一条路由:

router.get('/*', function(req, res) {
    if(req.user) {
        res.cookie('user', JSON.stringify(req.user.user_info));
    }

    res.render('index.html');
});

但是,当我把它放在代码中时,这个函数永远不会被调用,因为它已经使用了以前声明的其他路由之一。。有人能帮忙吗?

更改路线的第一行:

app.get('/*', function(req, res) {
为此:

router.get('/*', function(req, res) {
你的代码永远不会工作,因为nodej不知道什么是
app
。你从未定义过它

更新:

更改服务器代码以自动发送会话cookie,并延长到期时间:

// express/mongo session storage
app.use(express.session({
  secret: 'MEAN',
  store: new mongoStore({
    url: config.db,
    collection: 'sessions'
  }),
  cookie: { maxAge : 3600000 } //1 Hour <-----------
}));

更改路线的第一行:

app.get('/*', function(req, res) {
为此:

router.get('/*', function(req, res) {
你的代码永远不会工作,因为nodej不知道什么是
app
。你从未定义过它

更新:

更改服务器代码以自动发送会话cookie,并延长到期时间:

// express/mongo session storage
app.use(express.session({
  secret: 'MEAN',
  store: new mongoStore({
    url: config.db,
    collection: 'sessions'
  }),
  cookie: { maxAge : 3600000 } //1 Hour <-----------
}));

但是,这不会阻碍其他路线吗?难道不是所有的东西都会进入这段代码吗?
app.get
只是问题中的一个输入错误-对不起,你不使用中间件是我的错误。如果您尝试
router.get('*',function(req,res){
并开始工作?在哪里?在中间件之外?如果您去的话,`index.html'正在呈现?就是这样,angular router正在处理这些请求的路由,我在这里展示的是一个API。
res.render('index.html'))
代码取自angular passport repo,但我认为我不需要它。我只是想用一个cookie来回应。但这不会阻止其余的路线吗?难道不是所有的东西都会进入这段代码吗?
应用程序。get
只是问题中的一个输入错误-抱歉。你不要使用中间件是我的错误。如果你尝试
router.get('*',function(req,res){
并开始工作?在哪里?在中间件之外?如果你去的话,`index.html'正在呈现?就是这样,angular router正在处理这些请求的路由,我在这里展示的是一个API。
res.render('index.html'))
代码取自angular passport repo,但我认为我不需要它。我只是想用cookie来回应。。