2015-03-13 94 views
0
$http.post('/api/user/' + userid._id, { 
    posts: {body: 'hallooo'} 
}); 

//不行的..但角Fullstack猫鼬后成阵列

$scope.deleteThing = function(thing) { 
    $http.delete('/api/things/' + thing._id); 
}; 

工作正常。我想要发布的“身体”变成了阵列,并得到一个404错误 这里我的架构:

var UserSchema = new Schema({ 
    name: String, 
    email: { type: String, lowercase: true }, 
    role: { 
     type: String, 
     default: 'user' 
    }, 
    hashedPassword: String, 
    provider: String, 
    salt: String, 
    facebook: {}, 
    twitter: {}, 
    google: {}, 
    github: {}, 
    posts: [{body: String}], 
    date: { type: Date, default: Date.now } 
}); 

我能做些什么?

+1

{ 帖:[{体: 'hallooo'}] – 2015-03-13 07:33:18

+0

我不知道什么猫鼬,但如果它有一个RESTful API,那么你shuld是可能调用一个PUT而不是一个POST,因为你不是创建一个新的用户实体,而是更新一个现有的实体... – 2015-03-13 07:36:53

+0

我认为目的是制作一个JSON序列化体[$ push](http://docs.mongodb。 org/manual/reference/operator/update/push /)到文档中的MongoDB数组字段。但是另一个角度/意义上的问题没有显示相关的服务器端代码。 – 2015-03-13 07:47:42

回答

0

假设你index.js看起来是这样的:

'use strict'; 

var express = require('express'); 
var controller = require('./user.controller'); 

var router = express.Router(); 

router.get('/', controller.index); 
router.get('/:id', controller.show); 
router.post('/', controller.create); 
router.put('/:id', controller.update); 
router.patch('/:id', controller.update); 
router.delete('/:id', controller.destroy); 

module.exports = router; 

有一个$http.post('api/user/' + userid._id)的路由。如果你想更新用户使用$http.put('api/user/' + userid._id)

我还建议你为子文档“posts”定义一个模式。

是这样的:

var PostSchema = new Schema({ 
    body: String 
}); 

var UserSchema = new Schema({ 
    name: String, 
    email: { type: String, lowercase: true }, 
    role: { 
     type: String, 
     default: 'user' 
    }, 
    hashedPassword: String, 
    provider: String, 
    salt: String, 
    facebook: {}, 
    twitter: {}, 
    google: {}, 
    github: {}, 
    posts: [PostSchema], 
    date: { type: Date, default: Date.now } 
});