我正在使用mongoose来列出mongodb中一个集合中的所有数据,但我希望响应在5分钟之后到来,但是当超时值为5分钟时它没有响应但是当超时为1分钟时它响应
router.get(routeIdentifier+'/list/:id', function(req, res, next) {
model.find({}, function (err, objects) {
setTimeout(function(){
if (err) return res.send(err);
objects.push({id:req.params.id})
return res.json(objects);
},300000)
});
})
答案 0 :(得分:1)
据我所知,这主要是由于HTTP服务器超时。它在从数据库model
发送响应之前超时。
根据此处的文档,默认超时为2分钟:https://nodejs.org/dist/latest-v9.x/docs/api/http.html#http_server_settimeout_msecs_callback
请注意ExpressJS
位于内置NodeJS HTTP服务器的顶部。
尝试以下方法:
let server = http.createServer( expressApp );
server.setTimeout( 300000 );
这会将HTTP服务器超时初始化为5分钟。