我正在研究node.js你能告诉为什么重定向方法不起作用吗?一世 在ejs文件中有一个代码,用于在app.js中调用order(get方法)路由。
app.js下的代码:
app.get('/order', routes.auth,routes.order);
index.js下的代码:
exports.auth = function (req, res, next) {
if (req.session.authenticated) {
next();
} else {
res.redirect('signin');
}
};
为什么重定向方法不是去signin.ejs文件?它总是显示404 发现消息甚至登录页面可用。在快递3版本重定向方法 支持与否?任何人都可以澄清这个吗? 还请告诉我渲染和重定向之间的区别。
谢谢&问候
答案 0 :(得分:0)
你可以在这里阅读:http://expressjs.com/api.html(编辑:或者在这里,因为你似乎在使用Express 3:http://expressjs.com/3x/api.html)
redirect
将用户的浏览器重定向到另一个地址。这意味着,例如,如果用户访问myadress.com/redirect-me',并且您将其重定向到' / i-was-redirected',他将转到' myadress.com/i-was-redirected'
render
用于在浏览器所在的当前地址显示模板(例如.ejs
)。
如果您只有.ejs
个文件,则可能需要render
。但我建议制作signin
路线,然后重定向到那里。
答案 1 :(得分:0)
您是否定义了要使用的视图目录和引擎?如果没有添加这些行并检查
data = os.popen('ar t %s' % file).read()
//设置引擎
app.set('view engine', 'ejs');