在我的 server.js 中,我这样做: -
app.post('/app/getSingleOrderDetail', function(req,res,next){
orderController.getSingleOrderDetail(req.body.order_id);
})
然后在模型中
exports.getSingleOrderDetail = function(order_id, res, res) {
Orders.find({'_id':order_id}).exec(function(err,result){
console.log('result: '+result) //it's ok!!
res.json(result);
});
};
我期待在angularjs中调用此$http
$http({
url: '/app/getSingleOrderDetail',
method: "POST",
data: {'order_id' : id}
}).then(function(response){
console.log(response.data)
vm.sales_detail = response.data;
}).catch(function(response) {
alert('Error!');
console.log(response);
});
所有内容都正确传递但我无法将数据恢复到angularjs中的客户端。
答案 0 :(得分:1)
在getSingleOrderDetail
中你期望参数(order_id, res, res)
,当你调用函数时,你只是将值传递给第一个参数order_id
而没有任何东西为res
。此外,您已定义res
两次,这会在您尝试访问res
时导致代码出现问题。
您应该解决这些问题
app.post('/app/getSingleOrderDetail', orderController.getSingleOrderDetail);
exports.getSingleOrderDetail = function(req, res) {
let order_id = req.body.order_id;
Orders.find({'_id': order_id}).exec(function(err,result) {
if (err) return res.status(500).send(err);
console.log('result: ' + result); //it's ok!!
return res.status(200).json(result);
});
};
只是旁注,从路由名称的外观来看,这不会被视为 RESTful ,它更像是 RPC (远程过程调用)风格API。