好的,我相信路由有问题。我创建并运行了MongoDB数据库,我的Express / Node服务器已连接到它。实际的DB连接与主Server.js文件是分开的。
我有一个包含所有API的api.js文件。
// Added code below
var Todo = require('../models/todo.js');
module.exports = function(app){
// API Routes
// Get all todos
app.get('/api/todos', function(req, res) {
Todo.find(function(err, todos) {
if(err) {
res.send(err);
}
res.json(todos);
});
});
// Create todos
app.post('/api/todos', function(req, res) {
Todo.create({
text: req.body.text,
priority: req.body.priority,
done: false
}, function(err, todo) {
if(err) {
res.send(err);
}
Todo.find(function(err, todos) {
if(err) {
res.send(err);
}
res.json(todos);
});
});
});
// Delete todos
app.delete('/api/todos/:todo_id', function(req, res) {
Todo.remove({
_id : req.params.todo_id
}, function(err, todo) {
if(err) {
res.send(err);
}
Todo.find(function(err, todos) {
if(err) {
res.send(err);
}
res.json(todos);
});
});
});
};

现在,在我的主Server.js文件中,我使用了这样的API ...
//Just added this line below
var todo = require('./app/models/todos.js');
require('./app/routes/api.js')(app);

这就是我的Schema构建文件看起来像......
var mongoose = require('mongoose');
var Todo = mongoose.model('Todo', {
text: String,
priority: String
});
module.exports = mongoose.model('Todo', Todo);

因此,我在尝试访问时收到的错误(localhost:3000 / api / todos)是Todo(数据库)未定义。
我忘记了什么吗?
谢谢, 安迪