我是MEAN堆栈的新手,我显然遗漏了一些东西。我试图保存一个字符名称,并且我将空白对象保存到数据库中。
partialaddchar.jade
div(class="col-xs-4")
input(type="text", class="form-control input-sm", name="pcname", placeholder="character name", ng-model="form.pcname", required autofocus)
span(class="help-block") Character Name
input(class="btn", type="submit", ng-click="addChar()") Go
controllers.js
function AddCharCtrl($scope, $http, $location) {
//$scope.form = {pcname: ''};
$scope.form = {};
$scope.addChar = function () {
$http.post('/api/addChar', $scope.form).
success(function(data) {
$location.path('/');
});
};
}
api.js
exports.addChar = function (req, res) {
var newCharacter = new Character(req.body);
newCharacter.save();
console.log("character added: " + req.body);
res.json(req.body);
};
控制台返回"添加的字符:[object Object]
POST / api / addChar
然后成功重定向到字符列表,打印了多次,因为我点击了保存(因为我显然已经保存了一个空对象)。
partiallistchar.jade
div(ng-repeat='charnode in chardata')
a(href='/readCharacter/{{charnode._id}}') {{charnode.character + " Level " + charnode.level + " " + charnode.class}}
我将这种方法基于教程和种子,并且浏览stackoverflow似乎每个人都这样做有点不同并且尝试解决方案需要重写。我是一个顺从者,所以如果有一个明确的最佳实践并且我的方法已经结束,我将非常感谢您的反馈。
感谢。
编辑 - 我正在使用Mongoose。我还能通过专门引用req.body.pcname来使它工作。我的印象是这不是必需的,特别是考虑到返回的数据是pcname:value的形式。如果没有参考每个表单字段,我都会对如何完成此任何评论表示感谢。
exports.addChar = function (req, res) {
var newCharacter = new Character({
pcname: req.body.pcname});
newCharacter.save();
console.log(JSON.stringify(req.body));
console.log("character added: " + JSON.stringify(req.body.pcname));
res.json(req.body);
};