API路由无法找到MongoDB数据库

时间:2016-06-22 20:03:32

标签: angularjs node.js mongodb express

好的,我相信路由有问题。我创建并运行了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(数据库)未定义。

我忘记了什么吗?

谢谢, 安迪

0 个答案:

没有答案