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

Posted

技术标签:

【中文标题】无法使用邮递员从 express.js 服务器获得响应【英文标题】:could not get response from express.js server using postman 【发布时间】: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 = 猫鼬; 遇到同样的问题,你找到解决办法了吗? 【参考方案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 它不起作用我什至使用上面的代码。现在显示错误“套接字挂起”

以上是关于无法使用邮递员从 express.js 服务器获得响应的主要内容,如果未能解决你的问题,请参考以下文章

express.js 和 react.js cookie 保存到浏览器但不工作?

无法从 HttpResponseMessage 中的发布请求中获得响应

邮递员中的“无法得到任何回应”

使用邮递员将数据插入数据库时​​,在控制器文件中显示错误

从 Nginx 到 express.js 上的 socket.io 的反向代理上的“无法获取”

邮递员使用 JWT 进行授权调用时无法获得任何响应