标题说明了一切。我是新手,所以我确定这一定是一个简单的错误。 这是控制器
$scope.removeProduct = function(product){
console.log(product._id);
var inData = new Object();
inData._id = product._id;
console.log(inData);
$http({ url:"/api/deleteprod/", inData, method: "POST"
}).then(function () {
console.log("got here");
var index = $scope.vehicles.indexOf(product);
$scope.vehicles.splice(index, 1);
})
};
这是服务器端。
module.exports = function(app, mongoose, config) {
app.post('/api/deleteprod', function(req, res){
console.log("in app post",req);
var MongoClient = mongodb.MongoClient;
var url='mongodb://localhost:27017/seedsdev';
});
};
显然我想要的是将_id传递给服务器以便我可以使用它,但是当我输出req时,它大约有50页长,并且没有我想要的信息。在它通过之前,可以看到对象是控制台.log。
我正在做的新手错误是什么?
答案 0 :(得分:2)
调用$http
时,您会传递post
数据,其中包含data
属性。目前您正在通过inData
财产。改为:
$http({ url:"/api/deleteprod/", data: inData, method: "POST" }).then(...)
<强>更新强>:
在服务器端,您需要确保拥有JSON解析中间件,例如来自body-parser
的中间件:
app.use(require('body-parser').json())
使用body-parser
解析正文后,您将拥有一个带有已解析JSON的req.body
属性。
答案 1 :(得分:1)
你遗失的是两件事。
1)@Jacob
建议的邮寄申请中的数据 2)Post param body-parser
的解析器。 // npm install body-parser --save
这将帮助您解析节点js中的POST数据。
所以代码看起来像
$scope.removeProduct = function(product){
console.log(product._id);
var inData = new Object();
inData._id = product._id;
console.log(inData);
$http({ url:"/api/deleteprod/", data: inData, method: "POST"
}).then(function () {
console.log("got here");
var index = $scope.vehicles.indexOf(product);
$scope.vehicles.splice(index, 1);
})
};
IN后端
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
module.exports = function(app, mongoose, config) {
app.post('/api/deleteprod', function(req, res){
console.log("in app post",req.body._id);
var MongoClient = mongodb.MongoClient;
var url='mongodb://localhost:27017/seedsdev';
});
};