このトピックの質問を読んだことがあります。しかし私は解決策を見つけることができませんでした。なぜなら私はSchemaをうまく定義したと思うからです。MongoDB referenceError:スキーマが定義されていません
私のmodels.jsはこのようなものです。
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
username: String,
password: String,
created_at: { type: Date, default: Date.now }
});
var todoSchema = new mongoose.Schema({
title: String,
done: Boolean,
priority: String,
deadLine: String,
masterDetailNote: String
});
mongoose.model('User', userSchema);
mongoose.model('Todo', todoSchema);
私のapi.jsはこのようなものです。
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Todo = mongoose.model('Todo', todoSchema);
router.use(function(req, res, next) {
if (req.method === "GET") {
return next();
}
if (!req.isAuthenticated()) {
return res.redirect('#/login');
}
return next();
});
router.route('/posts')
//returns all todos
.get(function(req, res) {
Todo.find(function(err, data) {
if (err) {
return res.send(500, err);
}
return res.send(data);
});
})
//creates a new todo
.post(function(req, res) {
var todo = new Todo();
todo.title = req.body.title;
todo.done = req.body.done;
todo.priority = req.body.priority;
todo.deadLine = req.body.deadLine;
todo.masterDetailNote = req.body.masterDetailNote;
todo.save(function(err, post) {
if (err) {
return res.send(500, err);
}
return res.json(todo);
});
});
router.route('/posts/:id')
//egy bizonyos Todo-t hoz vissza
.get(function(req, res) {
Todo.findById(req.params.id, function(err, post) {
if (err)
res.send(err);
res.json(post);
});
})
//frissít egy todot
.put(function(req, res) {
Todo.findById(req.params.id, function(err, post) {
if (err)
res.send(err);
todo.title = req.body.title;
todo.done = req.body.done;
todo.priority = req.body.priority;
todo.deadLine = req.body.deadLine;
todo.masterDetailNote = req.body.masterDetailNote;
todo.save(function(err, post) {
if (err)
res.send(err);
res.json(post);
});
});
})
.delete(function(req, res) {
Todo.remove({
_id: req.params.id
}, function(err) {
if (err)
res.send(err);
res.json("deleted :(");
});
});
module.exports = router;
私はサーバーをstratしようとすると、エラーメッセージが表示されます。
var Todo = mongoose.model('Todo', todoSchema);
RefferenceError:todoSchemaは定義されていません。 userSchemaとまったく同じように定義されているので、わかりません。しかし、私はuserSyhemaをエラーなく使用することができます。そのためtodoSchema
の
からファイル、エラーメッセージが「MissingSchemaError:スキーマをモデルに登録されていない 『である藤堂』(名mongoose.modelを使用してください。 、スキーマ)。 –
最初に負荷モデルファイル。回答または部分@R.Andrisを参照してください –
それはそれを修正する必要がありますが、それを見つけることはありません。エラー:モジュール./models/models.jsが見つかりません。私は理解していない、それは実際にそのフォルダに存在する。 –