当我从邮递员发出邮件请求时,请求数据显示服务器但是服务器响应即状态代码和json对象没有发送给邮递员,邮递员只是加载...并且一段时间后它说无法得到响应服务器。
这是我的server.js类
var bodyParser = require('body-parser');
var express = require('express');
var {mongoose} = require('./db/mongoose');
var {Todo} = require('./models/todo');
var {Users} = require('./models/Users');
var app = express();
app.use(bodyParser.json());
app.post('/todos', (req, res) =>{
var todo = new Todo({
text: req.body.text
});
todo.save().then((doc) => {
res.send(doc);
}, (e) => {
res.status(400).send(e);
});
});
app.listen(3000, () =>{
console.log('started at port 3000');
});
答案 0 :(得分:0)
执行todo.save执行console.log(e)
时出错,检查mongo抛出的错误是什么。此外,您可以在响应中发送错误,只是为了查看正在发生的事情,而不是写res.status(400).send(e);
写res.send(e)
,它会发送错误作为响应。 "无法得到回应"通常在您没有从服务器发送任何响应时发生错误。在您的情况下,您将从Promise已解决的块发送响应,但不会从错误块发送响应。
还要确保todo.save()返回承诺?可能是你可以通过
实现这一目标todo.save(function(err,doc){
if(err){
return res.send(err);
}
res.send(doc);
})