【发布时间】:2014-06-01 18:23:42
【问题描述】:
我正在使用 yeoman 来搭建一个项目。最后我想学习搭建CRUD。我被困在一个帖子请求上。我选择了angular-fullstack generator,因为我对普通的角度发生器非常满意。
在尝试向 Things 集合提交新对象时,我的发布请求尝试因 400 错误而受阻。我很迷茫,我需要查看使用此文件夹结构的发布请求的完整代码。
更新: 然而,400 错误消失了,req.body。
更新 2: 现在一切正常,答案都在我的代码和答案中。
那么,使用 yeoman 的 angular-fullstack 生成器,我将如何在 mongo db 的 Thing 集合中发出 post 请求以创建 awesomeThing。
我肯定遗漏了一些东西,但我认为使 POST 请求成功所需的大部分内容如下所示。任何方向将不胜感激。
app/views/partials/main.html
<div class="row marketing">
<div ng-repeat="thing in awesomeThings">
<h4>{{thing.name}}</h4>
<p>{{thing.info}}</p>
</div>
</div>
<form ng-submit="addAwesome()">
<input type="text" ng-model="tempAwesome.name">
<input type="submit" class="btn btn-primary" value="Add">
</form>
app/scripts/controllers/main.html
$scope.name = [];
$http.get('/api/awesomeThings').success(function(awesomeThings) {
$scope.awesomeThings = awesomeThings;
});
$scope.addAwesome = function() {
$http.post('/api/awesomeThings', $scope.tempAwesome).success(function(postData) {
$scope.awesomeThings = postData;
}).error(function(postData, status){
console.log(postData);
$scope.status = status;
console.log(status);
});
};
lib/routes.js
app.route('/api/awesomeThings')
.get(api.awesomeThings)
.post(api.create);
lib/controllers/api.js
mongoose.model('Thing', ThingSchema);
exports.create = function (req, res) {
var awesomeThing = new Thing(req.body);
awesomeThing.save(function(err) {
if (err) return res.json(400, err);
});
};
lib/models/thing.js
var ThingSchema = new Schema({
name: String,
info: String,
awesomeness: Number
});
我有一种预感,因为我的提交与架构不匹配,猫鼬会阻止它? ?还有其他想法吗?
【问题讨论】:
标签: javascript node.js angularjs mongodb express