【发布时间】:2014-06-28 04:22:44
【问题描述】:
我正在用 NodeJS 开始我的冒险。我选择了带有 mongoose 数据库的 express web 框架。作为我前端的一部分,我正在使用 AngularJS。
首先是前端,传递给/api/user的基本表单参数。
$scope.form = {};
$scope.submitUser = function () {
console.log($scope.form);
$http.post('/api/user', $scope.form).
success(function(data) {})
.error(function(data) {});
};
$scope.form 等于:
Object {name: "foo", surname: "bar", email: "foobar@bar.foo"}
然后我们得到了后端,我从默认用户架构开始:
var userSchema = new mongoose.Schema({
name : String,
surname : String,
email : String
});
var User = mongoose.model('User', userSchema);
还有 api 后处理程序:
app.post('/api/user', function (req, res) {
User.create({
name : req.name,
surname : req.surname,
done : false
}, function(err, user) {
if (err)
res.send(err);
res.json(user);
});
});
结果不是对象,而是带有 __v 的 id:
__v: 0
_id: "536e218351b1182d0f000001"
PS。这很神奇,我完全不知道为什么会这样: __v 和 _id 之上的那些记录不会保存在任何地方(显示集合,并且 find() 在每个结果中为空)。但是当我运行时
User.find(function(err, users) {
if (err)
res.send(err)
res.json(users);
我得到的记录很少(以前尝试传递此表单)是 __v 和 _id。
连接如下所示:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:1/test');
感谢任何提示,对此进行解释。对不起,我缺乏知识,但我真的试过了。
祝你有美好的一天! ;)
【问题讨论】:
标签: node.js angularjs mongodb express mongoose