2015-03-13 80 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 } 
});