使用Node.js项目 - Express - MongoDB
当我正在运行应用程序时,我收到以下错误
E:\asista\asistabot2\node_modules\mongoose\lib\index.js:337
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model "App".
Use mongoose.model(name, schema)
at new MissingSchemaError (E:\asista\asistabot2\node_modules\mongoose\lib\error\missingSchema.js:20:11)
at Mongoose.model (E:\asista\asistabot2\node_modules\mongoose\lib\inde at Object.<anonymous> (E:\asista\asistabot2\app\controllers\chat.js:8: at Module._compile (module.js:643:30)
这是我的server.js
的一部分module.exports=app;
// Bootstrap models
fs.readdirSync(models)
.filter(file => ~file.search(/^[^\.].*\.js$/))
.forEach(file => require(join(models, file)));
require('./config/express')(app);
require('./config/routes')(app);
connect()
.on('error', console.log)
.on('disconnected', connect)
.once('open', listen);
function listen(){
if(app.get('env')=='test')
return;
app.listen(port);
console.log('Express app started on port ' + port);
}
function connect () {
var dbUrl ='mongodb://localhost:27017/asista';
mongoose.connect(dbUrl);
var db=mongoose.connection;
return db;
}
这是我的Chat.js
的一部分const mongoose = require('mongoose');
const App =mongoose.model('App')
exports.chat =(req,res)=>{
res.send('i am inside chat ->');
};
数据库模型提到了这个App.js
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
var appSchema = new Schema({
agent_key:String
},{ collection: 'app' });
mongoose.model("app",appSchema);
我该怎么办?我如何解决它?
答案 0 :(得分:0)
您没有定义架构!
首先,您需要创建一个像这样的模式
var appSchema = new Schema({
name: String
});
然后,您可以从中创建模型
const App = mongoose.model('App', appSchema);
或者,您可以将模式提供给模型函数
const App = mongoose.model('App', { name: String });