这是我的服务器代码:
router.route('/addComment')
.post(function(req, res) {
appRequest.update({"_id": req.body._id}, {$push:{comments:req.body.comments}}) // appRequest is my collection
});
以下是我定义集合的方式:
var locations = new mongoose.Schema({
title: {
type: String,
required: true,
},
comments: [{
identifier: String,
text: String
}]
});
我想更新注释并将用户新注释附加到comments数组。
当我尝试拨打/addComment
网址时,我会在日志中收到以下内容(我在Heroku中托管):
at =错误代码= H12 desc ="请求超时"方法= POST 路径=" / addComment"主机= discounts-oman.herokuapp.com request_id = f77cc261-e58a-4eea-a7ad-f74af57972f4 fwd =" 94.185.30.228" dyno = web.1 connect = 0ms service = 30010ms status = 503 bytes = 0 协议= HTTPS
我在这里做错了什么?
答案 0 :(得分:3)
请求超时时,您会收到H12 errors。它会超时,因为您没有向客户端发送任何响应。例如,响应可以像这样发送(如果其余代码是正确的):
router.route('/addComment').post(function (req, res) {
appRequest.update(
{ _id: req.body._id },
{ $push: { comments: req.body.comments } },
{},
function (err) {
if (err) {
return res.status(400).json(error);
}
return res.status(204).json();
});
});
res.json()
用于JSON响应。您可以使用res.send()
进行常规回复。