Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在发送标头node.js后重定向_Javascript_Node.js - Fatal编程技术网

Javascript 如何在发送标头node.js后重定向

Javascript 如何在发送标头node.js后重定向,javascript,node.js,Javascript,Node.js,我的admin.js控制器文件中有以下内容 module.exports = { getAdmin: async (req, res) => { let ref = req.headers.referer; if ((ref === undefined) || (!ref.includes('user'))) { res.writeHead(301, {Location: '/'} ); res.end(); res.render('admin', { indexCS

我的admin.js控制器文件中有以下内容

module.exports = {
  getAdmin: async (req, res) => {

 let ref = req.headers.referer;

if ((ref === undefined) || (!ref.includes('user'))) {
  res.writeHead(301,
  {Location: '/'}
);
res.end();

 res.render('admin', { indexCSS: true })
 }

  }
我想做的是,如果用户来自
/User
,他可以访问
/admin
页面,否则他会被重定向到
/
,即
主页
。如果用户来自有效的推荐人,它可以工作,但当我尝试直接转到路由时,它会正确重定向,但应用程序崩溃,我得到错误
error[ERR\u HTTP\u HEADERS\u SENT]:发送到客户端后无法设置头

是否有一种方法可以重定向而不出现错误

在我的方法中我做错了什么

提前谢谢

请注意,这不包括身份验证。

res.end()
的工作方式与函数的返回方式不同。之所以会出现此错误,是因为在使用writeHead
res.end()之后,调用了它,它会发回响应,然后代码尝试呈现“admin”

module.exports={
getAdmin:async(请求、回复)=>{
设ref=req.headers.referer;
如果((ref==未定义)| |(!ref.includes('user')){
文书标题(301{
位置:'/'
});
}否则{
res.render('admin'{
indexCSS:对
})
}
决议结束()
}