2017-08-17 83 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