【发布时间】:2014-07-18 14:35:38
【问题描述】:
$scope.submitBracket = function(item, event){
console.log("submitting form");
var jsonData = '{"userEmail" : "darwood@mail.com","brackets" :' + JSON.stringify($scope.allGames) + '}';
var testJSON = {"Hello": {"id": "file", "value": "WTF"}};
console.log(jsonData);
var responsePromise = $http.post("/api/brackets", jsonData, {});
responsePromise.success(function(dataFromServer,status,headers,config){
console.log(dataFromServer);
});
responsePromise.error(function(data,status,headers,config){
console.log(data);
});
}
我正在开发一个 MEAN 堆栈应用程序,它有一个向 MongoDB 提交 JSON 对象的表单。 JSON 是有效的。它可以毫无问题地手动提交到数据库。在上面的代码示例中,我可以看到对象在通过 HTTP 帖子发送到数据库之前被输出到控制台,该 HTTP 帖子被传递到快速路由。奇怪的是,我让它工作,然后在测试中从数据库中删除记录以输入新记录,它开始提交一个带有空数组的 JSON 对象。有时它会抛出“空响应消息,但 POST 请求确实得到了 200 响应。我一生都无法弄清楚为什么数据没有被传递。
如果在 Angular 端也尝试过这个替代功能来发送数据:
$scope.createBracket = function() {
var jsonData = '{"userEmail" : "darwood@mail.com","brackets" :' + JSON.stringify($scope.allGames) + '}';
$http.post('/api/brackets', jsonData)
.success(function(data) {
$scope.brackets = data;
$location.path('/');
})
.error(function(data) {
console.log('Error: ' + data);
});
};
这是它被传递到的快速路线。
app.post('/api/brackets', function(req, res) {
// create a Bracket
Bracket.create({
text : req.body.text,
done : false
}, function(err, Bracket) {
if (err)
res.send(err);
});
});
使用 Postman 使用原始 JSON 进行测试时。它挂了很长时间,并说请求正在等待。此代码是根据此处找到的教程建模的
http://scotch.io/tutorials/javascript/creating-a-single-page-todo-app-with-node-and-angular
我已启动并运行此示例代码,并将其插入到我的数据库中没有问题。
我被难住了。任何帮助,将不胜感激。谢谢。
【问题讨论】:
标签: node.js angularjs express mongoose mean-stack