node.js - NodeJS 创建函数崩溃
问题描述
我是 nodejs 的新手。我使用一条路线同时对两个表进行两次插入。我使用 mongo db 作为我的数据库。这是我的代码
router.post('/register',(req, res)=>{
const newBook = new books({
bkName: req.body.bkName,
numberofCopies: req.body.numberofCopies,
Author: req.body.Author,
Edition: req.body.Edition,
AddingDate: req.body.AddingDate
});
const numberofbooks = new bookNumber({
bkName: req.body.bkName,
numberofCopies: req.body.numberofCopies
});
numberofbooks.save((err,doc)=>{
if(!err){ res.send(doc); }
else{ console.log('Number of books adding error:'+JSON.stringify(err, undefined, 2)); }
});
newBook.save((err, doc)=>{
if(!err){ res.send(doc); }
else{console.log('Books in book Save:'+JSON.stringify(err, undefined, 2));}
});
//console.log(numberofbooks);
});
之前看过一些帖子。但是我没有发现这样的问题。当我在邮递员中运行这条路线时,它会将数据添加到两个表中,并且我的节点服务器崩溃了。所以插入后我不能做其他事情。这是我在服务器中遇到的错误。
错误:发送后无法设置标头。
at validateHeader (_http_outgoing.js:491:11) at ServerResponse.setHeader (_http_outgoing.js:498:3)
我无法理解这一点,我在过去两个小时内一直在寻找答案。感谢您的宝贵时间。
解决方案
您不能对请求发送超过一个响应。错误将被抛出newBook.save()
(或numberofbooks.save()
- 以第二个完成为准),因为您在另一个请求中发送了第二个响应后,尝试发送第二个响应save()
。目前尚不完全清楚您真正想要发送什么,目前返回了两个不同的文件。
推荐阅读
- c - 在处理文件之前声明可变数量的变量
- javascript - 在 Firebase 中通过 id 获取特定对象/项目
- .htaccess - htaccess:带有任何 URI 的 URL 不重定向到 https://www
- python - 如何在 wtform validate_ 中获取另一个字段的数据?
- android - Android Studio 的 Javadoc 验证器?
- java - 调试器不在堆栈帧中显示新变量
- html - 除此之外,还有更优雅的方式来格式化表格中的表格吗?我有不同的数字行
- python - 迭代多索引数据帧并将数据存储在新数据帧中的最佳方法
- python - 无法获取字典 For 循环以从正确的列中提取字符串
- jquery - 当前登录的用户属性上的获取/发布/放置方法 - 带有 ajax 请求 jquery 的 ASP.NET Web API 2