我正在尝试在Mongoose中创建一个简单的模型,除了我不断收到一个Missing Schema Error。我浏览了一些其他解决方案,例如this和this,除了他们的解决方案对我没有用。我做错了什么?
App.js
var mongo = require('mongodb');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/interactDB');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error: '));
db.once('open', function callback() {
var accountSchema = mongoose.Schema({
firstName: String,
lastName: String,
email: String,
studID: Number,
grade: Number,
password: String
});
var Account = mongoose.model('Account', accountSchema);
});
var routes = require('./routes/index');
var app = express();
Index.js
var express = require('express');
var router = express.Router();
var crypto = require('crypto');
var mongoose = require('mongoose');
var Account = mongoose.model('Account');
router.post('/register', function(req, res) {
var firstName = req.body.firstName;
var lastName = req.body.lastName;
var email = req.body.email;
var studID = req.body.studID;
var grade = req.body.grade;
var upass = firstName + " " + lastName;
var pass = crypto.createHash('md5').update(upass).digest('hex');
var student = new Account({ firstName: firstName, lastName: lastName, email: email, studID: studID, grade: grade, password: pass});
student.save();
});
module.exports = router;
答案 0 :(得分:1)
在Account
运行后连接到数据库之前,您的代码不会注册./routes/index.js
的架构。您无需连接到数据库即可注册架构,因此请将app.js更改为:
var mongo = require('mongodb');
var mongoose = require('mongoose');
var accountSchema = mongoose.Schema({
firstName: String,
lastName: String,
email: String,
studID: Number,
grade: Number,
password: String
});
var Account = mongoose.model('Account', accountSchema);
mongoose.connect('mongodb://localhost/interactDB');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error: '));
var routes = require('./routes/index');
var app = express();