express在render和redirect的时候可以指定路径吗?
比方我想渲染模板 aaa.ejs 至 http://域名/admin/aaa,看官方手册貌似没有路径可选,一旦render了aaa.ejs就被指向了http://域名/aaa,如果再想跳转到admin/aaa下面,可惜redirect 带不上参数。苦恼中。。。。
4 回复
当然可以。给你个栗子。 controller.js
exports.index = function(req,res) {
res.render('aaa',{});
}
route.js
module.exports = function(app) {
var controller = require('contoller');
app.route('/admin/aaa').get(controller.index);
}
server.js
var app = express();
require('route')(app);
大神我试了你的例子,你这个是外部请求就是从/admin/add进来。 因为我这边比方说,请求从/admin/bbb进来,渲染aaa的模板,但是最终浏览器那边跳到了/admin/aaa下面,而且是在不带SESSION的情况下
明白你的意思了。我觉得不需要再/admin/bbb的时候渲染模板。要是数据量不大的话,把渲染模板所需的数据放在cookie中,然后在/admin/aaa中拿到这个cookie数据。 route.js
module.exports = function(app) {
var controller = require('contoller');
app.route('/admin/bbb').get(function(req,res){
res.cookie('aaacookie',{cookieobj},{path:'/admin/aaa'})
res.redirect('/admin/aaa');
});
//在controller.index中通过req.cookie.aaacookie拿到数据
app.route('/admin/aaa').get(controller.index);
}
多谢,好像也只有这样了。嘛就麻烦在如果不依赖SESSION,每次渲染到根路径下,NGINX的规则要写死人了。。。。