【发布时间】:2014-09-25 16:16:00
【问题描述】:
我是 AngularJS 的新手,我正在尝试更新我的 MongoDB 数据库。当我尝试更新集合中的对象时遇到问题。以下是我尝试这样做的尝试:
//listviewFactory is already injected and returns an event object
//I call $scope.put when clicking (ng-click) on a button
$scope.event = listviewFactory.getEvent();
$scope.put = function(event){
var currentUser = {};
if($cookieStore.get('token')) {
currentUser = User.get();
}
event.attendees.push(currentUser);
$http.post('/api/events/' + event._id, event).success(function(data){
for(var i = 0; i < event.attendees.length; i++){
console.log("Attendees: ", event.attendees[i]);
}
$location.path('/');
});
};
我只是不确定为什么我的代码不起作用。当我执行$http put 请求时,我的函数成功并继续执行console.log。当我打印出attendees 数组时,我看到currentUser 对象确实附加到了我的event.attendees 数组中。但是,当我使用 Mongo shell 检查我的数据库时,我的参加者数组没有更新并且保持空白。关于我为什么或在哪里可能出错的任何想法?下面也是我如何路由应用程序并指定如何在 MongoDB 中存储信息的服务器端代码。
module.exports = function(app) {
app.use('/api/events', require('./api/event'));
...
}
module.exports = mongoose.model('Event', EventSchema);
var express = require('express');
var controller = require('./event.controller');
var router = express.Router();
router.get('/', controller.index);
router.put('/:id', controller.update);
// Updates an existing event in the DB.
exports.update = function(req, res) {
if(req.body._id) { delete req.body._id; }
Event.findById(req.params.id, function (err, event) {
if (err) { return handleError(err); }
if(!event) { return res.send(404); }
var updated = _.merge(event, req.body);
updated.save(function (err) {
if (err) { return handleError(err); }
return res.json(200, event);
});
});
};
编辑:当我 console.log 当前用户:
Current User:
Resource {$promise: Object, $resolved: false, $get: function, $save: function, $query: function…}
$promise: Object
$resolved: true
__v: 0
_id: "53dd72fb5a24aa781a3cbde8"
email: "test@test.com"
name: "Test User"
provider: "local"
role: "user"
编辑:猫鼬模式:
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var EventSchema = new Schema({
startDate: Date,
endDate: Date,
eventLocation: String,
eventName: String,
attendees: Array
});
【问题讨论】:
标签: javascript node.js angularjs mongodb mongoose