2017-08-17 65 views
0

我正在按照本教程https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd来构建我的第一个API。nodejs:抱怨使用的模型

一切工作正常,然后我决定将其更改为存储位置和收藏夹,创建了FavoritesModel.js和LocationsModel.js。

我server.js现在有

var express = require('express'), 
app = express(), 
port = process.env.PORT || 3000, 
mongoose = require('mongoose'), 
Location = require('./api/models/LocationsModel'), 
Favorite = require('./api/models/FavoritesModel'), 
bodyParser = require('body-parser'); 

mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost/db'); 
require("./api/models/LocationsModel"); 
require("./api/models/FavoritesModel"); 


app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

var routes = require('./api/routes/geolocationAPIRoutes'); 
routes(app); 

app.listen(port); 

console.log('geolocation RESTful API server started on: ' + port); 

app.use(function(req, res) { 
res.status(404).send({url: req.originalUrl + ' not found'}) 
}); 

然而,当我运行npm run start,我得到MissingSchemaError: Schema hasn't been registered for model "Tasks".

我在做什么错?对任何地方都没有任何参考。我需要重建API还是什么?我已经做了npm rebuild

+0

我删除了,没有更多的任务模式。 – SuperMonteiro

回答

0
Location = require('./api/models/LocationsModel'), // remove this 
Favorite = require('./api/models/FavoritesModel'), // remove this 
bodyParser = require('body-parser'); 

mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost/db'); 
var Location = require("./api/models/LocationsModel");// change this 
var Favorite = require("./api/models/FavoritesModel");// change this 

您需要这些模型两次。 连接前删除这些要求。和连接后的句子变量。

+0

谢谢,但现在我得到了'错误:Route.post()需要回调函数,但得到了[对象未定义]' – SuperMonteiro

+0

@SuperMonteiro这是一个不同的问题,与这个不相关。但是如果你在这里发布你的Route.post代码,我会帮你的。 – ZeroCho

+0

就是这样,我根本没有写任何Route.post()。 – SuperMonteiro