私はtodosアプリケーション用のRESTful APIを構築しようとしています。Mongoose RESTful api object.id ref
トドススキーム:
const mongoose = require('mongoose');
const TodosScheme = new mongoose.Schema({
id: String
});
module.exports = mongoose.model('Todos', TodosScheme);
タスクスキーム:
const mongoose = require('mongoose');
const TaskScheme = new mongoose.Schema({
id: String,
todosID: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Todos'
},
content: String,
isDone: Boolean
});
module.exports = mongoose.model('Task', TaskScheme);
ユーザーがタスクを作成する場合それは、いくつかのトドス項目の基準となります。私は必要なタスクを作成するには 1):
私はリスト
app.post('/api/todos/create', (req, res) => {
newTodos = new Todos({});
newTodos.save((err, todos) => {
if (err) res.status(400).json(err);
res.json(todos);
});
});
トドス作成のためのルートを書き始めると、今私は私の質問があるタスク
app.post('/api/todos/create/task', (req, res) => {
const body = req.body;
console.log(body);
let newTask = new Task({
todosID: body.todosID, //here i not sure!
content: body.content || 'no content',
isDone: body.isDone || false
});
newTask.save((err, task) => {
if (err) res.status(400).json(err);
res.json(task);
});
});
を作成するためにルートを書いてみます3つのパラメータを渡す:
コンテンツ:クライアントはリクエストからパスします
isDone:クライアントはリクエストからパスします
todosID:X?クライアント?それは最善の方法ですか?
2)クライアントがtodosIDに渡す必要がある場合、これはタスクスキームで必須である必要がありますか? ユーザが今todosIDなしでタスクを作成すると、彼は参照なしにタスクを作成するためです。
3)スキームのtodosアプリを書く良い方法がありますか? ありがとうございました:)
OKクライアントはtodos._idを送信する必要があります。したがって、作成タスクで必須である必要がありますか?それは働くには良い方法ですか? – Alin
はい、クライアントは 'todos._id'を送信しなければなりません。正しい方法です。これはプライベートな情報ではなく、例えばこのstackoverflowの質問にはidがあり、あなたのコメントが追加されたときにそれをサーバーに送信しました。 – alexmac