无法使用邮递员从 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 中的发布请求中获得响应