【发布时间】:2020-04-10 22:29:07
【问题描述】:
在 MEAN 堆栈上创建一个小型 Web 应用程序,我正在将我的架构迁移到单独的“模型”目录。当架构在同一个 app.js 文件中定义时,一切正常;但是,当我将代码切换到一个单独的更模块化的文件并导入它时,我得到了这个错误:
TypeError: Player.find is not a function
at /Users/username/code/express/WebApp/v3/app.js:57:12
当它到达需要查找玩家的第一条路线时会发生此错误,并且在盯着它几个小时后我不太确定我错过了什么。
我的 app.js 文件:
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});
}
});
});
以及我尝试导入的 player.js 文件:
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);
上述架构定义和模型定义在 app.js 文件中时完全可以正常工作,但在导入时就不行了。我在这里想念什么?提前感谢您的帮助。
【问题讨论】:
标签: node.js express mean-stack