express在render和redirect的时候可以指定路径吗?
发布于 2个月前 作者 zacard-orc 263 次浏览 来自 问答

比方我想渲染模板 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的规则要写死人了。。。。

回到顶部