2017-07-28 37 views
1

当我向邮递员发送邮寄请求时,请求数据显示为服务器但服务器响应,即状态码和json对象未发送给邮递员,邮递员刚刚正在加载...并在一段时间后说它无法从服务器获得响应。无法从邮递员使用express.js服务器得到回复

这里是我的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

你试图做出什么请求? – Paul

+0

向'todo.save()'添加'.catch(err => res.send(err))'。它可能抛出一个例外,从而不能解决承诺。 –

+0

此代码应该工作得很好... –

回答

0

有在执行todo.save一些错误也console.log(e)检查什么是蒙戈的错误引发。您也可以在回复中发送错误以查看发生了什么,而不是编写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); 
}) 
+0

在邮递员控制台它给这个错误错误:读ECONNRESET – malik

+0

它不工作我甚至使用上面的代码。现在显示错误“套接字挂断” – malik

相关问题