无法使用邮递员从express.js服务器得到回应

当我从邮递员请求数据时,请求数据显示服务器,但服务器的响应,即状态码和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'); }); 

执行todo.save时会出现一些错误。console.log 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); })