这个问题肯定已经回答了很多次,但是似乎没有一种解决方案对我有用。我是Mongoose / Node的初学者,并且正在关注PluralSight教程,在该教程中标题出现错误。它专门指向bookModel.js的第4行。我已经在下面包括了我的两个JavaScript文件以及package.json,以防我的软件包版本出现问题。
据我所知,我的代码与教程相同,几乎与我能找到的每个解决方案都非常相似,但是我仍然收到相同的错误。
我为这个愚蠢的问题道歉,但是我已经为此苦苦挣扎了一段时间,死在水里。
谢谢
models / bookModel.js
width
app.js
var mongoose = require("mongoose"),
Schema = mongoose.Schema();
var bookModel = new Schema({
title: {type: String},
author: {type: String},
genre: {type: String},
read: {type: Boolean, default:false}
});
module.exports = mongoose.model("Book", bookModel);
package.json
var express = require("express")
mongoose = require("mongoose");
var db = mongoose.connect("mongodb://localhost/bookAPI");
var Book = require("./models/bookModel");
var app = express();
var port = process.env.port || 3000;
var bookRouter = express.Router();
bookRouter.route("/books")
.get(function(req, res){
Book.find(function(err, books){
if(err){
res.status(500).send(err);
}
else{
res.json(books);
}
})
});
app.use("/api", bookRouter);
答案 0 :(得分:1)
问题是:
Schema = mongoose.Schema();
这实际上不是构造函数,因为Schema
是mongoose.Schema()
调用的结果,即伪模式对象。
应该是:
Schema = mongoose.Schema;
答案 1 :(得分:0)
尝试以这种方式设置架构。
var mongoose = require("mongoose"),
var bookSchema = new mongoose.Schema({
title: {type: String},
author: {type: String},
genre: {type: String},
read: {type: Boolean, default:false}
});
module.exports = mongoose.model("Book", bookSchema);