Node.js 如何在一次获取请求中创建数据和渲染

Node.js 如何在一次获取请求中创建数据和渲染,node.js,express,mongoose,Node.js,Express,Mongoose,dashboardRouter.route(“/:Teachersubjects/:Class/:Salary”) .get(函数(请求、恢复) { 函数句柄RR(err、redir) { 如果(重拨){ res.end(“err”); } 否则{ res.writeHead(200,{“内容类型”:“文本/普通”}); res.end('发生错误'); } } verifySchoolUser(请求、回复、函数(错误、schooluserId){ 如果(错误){ res.redirect('/

dashboardRouter.route(“/:Teachersubjects/:Class/:Salary”)
.get(函数(请求、恢复)
{
函数句柄RR(err、redir)
{
如果(重拨){
res.end(“err”);
}
否则{
res.writeHead(200,{“内容类型”:“文本/普通”});
res.end('发生错误');
}
}
verifySchoolUser(请求、回复、函数(错误、schooluserId){
如果(错误){
res.redirect('/schoolusers/login');
返回;
}
否则{
findOne({u id:schooluserId}).exec(函数(err,SchoolUser){
如果(错误)
{
console.log(“努瑟学校”)
handleErr(err);
返回;
}
其他的
{    

如果(schooluser.count路由处理程序存在多个问题。首先,每当发生错误时,您都会通过
handleErr()
函数运行此函数,但在这些情况下,您从不使用
res
执行任何操作。这意味着请求永远不会得到解决,并最终在客户端超时。
当发生错误时,您应该使用错误代码进行响应。例如:

res.status(400).send('Something went wrong');
当您实际发送响应并呈现模板时,您正在应用一个名为
data
的变量。但是,该变量似乎没有在代码中的任何位置声明。可能您遗漏了该代码,但如果该变量确实未声明,它会抛出一个
ReferenceError
,路由框架会捕捉到该变量ch反过来会响应一个
500内部服务器错误
。因此这可能是您问题的根源。

任何由
Spacess.create()
schooluser.save()
引发的未捕获错误都会产生相同的效果。

我还插入了代码的完整部分以供参考,因此您也可以查看它。