我正在尝试使用mongoose-seeder播种数据库,并且我不断收到MissingSchemaError。我确信我正在正确设置架构,所以我很遗憾为什么会发生这种情况。 我设置架构的文件如下所示:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserSchema = new Schema({
fullName: {
type: String,
required: true,
trim: true
},
emailAddress: {
type: String,
unique: true,
required: true,
match: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)| .
(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-
Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
},
password: {
type: String,
required: true
}
});
const User = mongoose.model('User', UserSchema);
module.exports.User = User;
并在我的主文件中:
'use strict';
// load modules
const morgan = require('morgan');
const mongoose = require('mongoose');
const seeder = require('mongoose-seeder');
const data = require('./data/data.json');
const express = require('express');
const app = express();
//set up database connection
mongoose.connect("mongodb://localhost:27017/courseapi");
const db = mongoose.connection;
//handle err connecting to db
db.on("error", (err) => console.error("Error connecting to database: ",
err));
//success
db.once("open", () => {
console.log("Connected to database");
seeder.seed(data, {dropDatabase: false}).then(function(dbData){
console.log("Database seeded!");
}).catch(function(err){
console.error("Error seeding database", err);
})
});
任何帮助都会非常感激!
答案 0 :(得分:0)
不维护mongoose-seeder
包。因此建议替代导入数据。您可以使用mongoimport
在CLI(命令行界面)中填充MongoDB。它会将JSON文件加载到指定的MongoDB实例&amp;采集。您只需要在执行之前运行mongod
实例。
请浏览walkthrough。
答案 1 :(得分:0)
谢谢你的帮助!该项目需要使用模块来播种数据,因此我最终使用了mongoose-seed。 (需要重新格式化json,但幸好文件相对较小)
答案 2 :(得分:0)
最好使用主动维护的Seedgoose。它是具有智能参考支持的最终猫鼬播种机。