2016-11-02 79 views
0

所以我創建了一個API來創建問題並獲得有關問題id的答案,但每當我使用郵遞員創建POST請求時都會回答。我無法向/ questions/ID/answers發送POST請求404錯誤

每當我創建一個POST請求http://localhost:3000/api/questions/ID/answers它給了我404我使用節點寧靜的包,用於創建此API,這裏是架構

// Dependencies 
var restful = require('node-restful'); 
// Database 
var mongoose = restful.mongoose; 

var Schema = mongoose.Schema; 

// Question Schema 
var QuestionSchema = new Schema({ 
    qTitle: { 
    type: String, 
    required: true 
    }, 
    qBody: { 
    type: String, 
    required: true 
    }, 
    created_at: { 
    type: Date 
    }, 
    updated_at: { 
    type: Date 
    }, 
    answers: [{ 
    aTitle: { 
     type: String, 
     required: true 
    }, 
    aBody: { 
     type: String, 
     required: true 
    }, 
    created_at: Date, 
    updated_at: Date 
    }] 
}); 


// Export the question schema 
module.exports = restful.model('Questions', QuestionSchema); 

如果有,如果你有任何錯誤或希望看到更多的代碼讓我知道!

這裏是我的路線

'use strict'; 
var express = require('express'); 

var router = express.Router(); 

var Question = require('../models/question'); 

Question.methods(['get', 'put', 'post', 'delete']); 
Question.register(router, '/questions'); 


// Exports the router 
module.exports = router; 
+0

另外,據我所知,404意味着它不能被發現,但我認爲我可以做與/問題/ ID /回答POST請求並仍然將我在postman中設置的json數據注入到我使用的特定問題中。 – Ethan

+0

你也可以粘貼你的路線嗎? – SpunkyLive

回答

0

我想你應該添加:id/answers

Question.register(router, '/questions/:id/answers'); 
+0

這是做了一些事情,但現在它是qTitle&qBody的驗證錯誤 – Ethan

+0

我刪除了所需的標籤,現在它只是創建新的空白問題,而其中沒有答案。奇怪 – Ethan

0

根據節點的RESTful你需要打開詳細的文檔:在使用自定義的航真:

Question.route('answers', { 
method:'post', 
detail: true, 
handler: function(req, res, next) { 
    // req.params.id holds the resource's id 
    res.send("I'm at /questions/:id/answers") 
} 

});

這是完全未經測試的,可能不完全正確,因爲您的模型非常複雜,所有示例都非常簡單。但是你絕對需要一個自定義路線。這個小代碼片段可能會建立一堆你不想要的路由,但它應該指向你正確的方向。

我只花了快速查看文檔在這裏: http://www.baugarten.me/node-restful/