[英]Redirect REST API response to UI/Browser NodeJs/Express/Request
[英]NodeJS Express REST API get request returns empty
我正在尝试使用NodeJS和Express构建REST API。 我创造的路线offers
,当我尝试发送GET请求,我得到200个状态码空响应
routes.js
router.get('', passport.authenticate('jwt', { session: true}), OfferController.getOffers);
offerController.js
exports.getOffers = function(req, res) {
Offer.find({}, function(err, task) {
if (err){
return res.send(err);
}
res.json(Offer);
});
}
这里缺少什么?
关于什么:
exports.getOffers = function(req, res) {
Offer.find({}, function(err, task) {
if (err){
return res.send(err);
}
// Change this line from res.json(Offer) to:
res.json(task);
});
}
Offer.find()
的结果在任务变量中,这就是您要发送回客户端的内容。
Offer
是猫鼬模式,您无法将其寄回。 而且您不需要返回它,因为它是异步的。
使用以下结构:
exports.getOffers = function(req, res) {
Offer.find({}, function(error, result) {
var myRes = {};
if(error){
myRes.error = error;
myRes.error.message = "Error..."
}else{
myRes.data = result;
}
res.send(myRes);
});
}
您为什么要发送Offer
?
您应该发送Offer.find({})
的输出,即task
。
因此, res.send(task)
应该是错误条件之后的语句。 它看起来像:
exports.getOffers = function(req, res) {
Offer.find({}, function(err, task) {
if (err){
return res.send(err);
}
res.json(task); //this
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.