Создание небольшого веб-приложения в стеке MEAN, и я в процессе переноса моих схем в отдельный каталог "models". Когда схемы определены в одном файле app. js, все работает нормально; однако, когда я переключаю код на отдельный более модульный файл и импортирую его, я получаю эту ошибку:
TypeError: Player.find is not a function
at /Users/username/code/express/WebApp/v3/app.js:57:12
Эта ошибка возникает, когда он попадает на тот первый маршрут, где он должен искать игроков, и я ' Я не совсем уверен, чего мне не хватает после того, как я смотрю на это часами.
Мое приложение. js file:
var express = require("express"),
app = express(),
bodyParser = require("body-parser"),
mongoose = require("mongoose"),
Player = require("./models/players")
const port = 3000;
mongoose.connect("mongodb://localhost/players", { useNewUrlParser: true, useUnifiedTopology: true });
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({extended: true}));
// PLAYER SCHEMA ORIGNALLY DEFINED HERE BUT NOW ATTEMPTING TO MOVE TO DIFF DIRECTORY & IMPORT
/*var playerSchema = new mongoose.Schema({
player: String,
position: String,
description: String
});
var Player = mongoose.model("Player", playerSchema);*/
app.get("/", function(req, res) {
res.render("landing");
});
app.get("/players", function(req, res) {
// Get all players from DB
Player.find({}, function(err, allPlayers){
if(err){
console.log(err);
} else {
console.log("We're good.");
res.render("players", {players: allPlayers});
}
});
});
и мой проигрыватель. js file, который я ' m пытается импортировать:
var mongoose = require("mongoose");
var playerSchema = new mongoose.Schema({
player: String,
position: String,
description: String
});
// Compile into a model
module.exports = mongoose.model("Player", playerSchema);
Приведенное выше определение схемы и определение модели работают совершенно нормально, когда они находятся в файле приложения. js, но не при импорте. Что мне здесь не хватает? Заранее спасибо за помощь.