我想了解会话是如何运作的。我需要post
对路线/task/save
进行get
到/task/list
,我将获得我在/task/save
发布的元素, post
应该与req.body上的对象一起使用{ "name" : "task name" }
,并且在发布之前,我需要修改该对象并放置node-uuid生成的ID,然后,我需要将这些元素推送到数组并将它们放在名为“task”的会话中。我正在使用express-session,这是我到目前为止的代码
app.js
var express = require('express');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var uuid = require('node-uuid');
var session = require('express-session');
var _ = require('lodash');
var routes = require('./routes/index');
var save = require('./routes/save');
var app = express();
app.use(bodyParser.json());
app.use(cookieParser());
app.use(session({secret: '1234567890QWERTY'}));
app.use('/', routes);
app.use('/task/list', save);
app.use('/task/save', save);
});
module.exports = app;
这里是我有save.js
var express = require('express');
var router = express.Router();
/* GET task save */
router.get('/', function(req, res, next) {
res.send('Get the list of tasks');
});
router.post('/', function(req, res, next) {
res.send('Send body with name, taskName & the modified object including the UUID');
});
module.exports = router;
为了让我把这些任务放在会话中,你有什么建议?
答案 0 :(得分:2)
在router.post hander方法中,如果数组不存在,则需要向req.session变量添加数组。您可以在此阵列中保存任务。
req.session.tasks = req.session.tasks || [] // set tasks to be a new array if it doesn't exist yet
req.session.tasks.push({"name":"I am a new task"})
一旦有了对tasks数组的引用,就可以将任务存储在其中。
在router.get的处理程序中,您将可以访问您的任务:
console.log(req.session.tasks) // [{"name":"I am a new task"}, .... ]