【问题标题】:could not get response from express.js server using postman无法使用邮递员从 express.js 服务器获得响应
【发布时间】:2018-01-04 12:53:41
【问题描述】:

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

【问题讨论】:

  • 您尝试提出什么要求?
  • .catch(err => res.send(err)) 添加到todo.save()。它可能会引发异常,因此无法解决承诺。
  • 这段代码应该可以正常工作...
  • @Paul 这是 ./db/mongoose 的内容。 var 猫鼬 = 要求('猫鼬');猫鼬.Promise = global.Promise; mongoose.createConnection('mongodb://localhost:27017/TodoApp'); module.exports = {猫鼬};
  • 遇到同样的问题,你找到解决办法了吗?

标签: javascript node.js express response postman


【解决方案1】:

执行 todo.save do 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);
})

【讨论】:

  • 在邮递员控制台中出现此错误错误:读取 ECONNRESET
  • 它不起作用我什至使用上面的代码。现在显示错误“套接字挂起”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多