gpt4 book ai didi

javascript - Mongoose 导入模型不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:10 24 4
gpt4 key购买 nike

当我在使用它们的同一文件中定义架构和模型时,一切正常。

但是,如果我导入它们,就像我在网上看到的所有示例一样导入它们:像这样......

index.js

var mongoose = require('mongoose');
var User = require('./../models/user');

mongoose.connect('mongodb://localhost/demo_database', function(){
var user = new User({...});
});

user.js

var mongoose = require('mongoose');

var UserSch = new mongoose.Schema({
...
});

module.exports = mongoose.model('user', UserSch);

...那么我在 index.js 中的任何 User 实例上运行的任何函数都将挂起。

我通过将 mongoose 变量传递给 user.js 来解决这个问题,如下所示...

index.js

var mongoose = require('mongoose');
var User = require('./../models/user')(mongoose);

mongoose.connect('mongodb://localhost/demo_database', function(){
var user = new User({...});
});

user.js

module.exports = function(mongoose) {

var UserSch = new mongoose.Schema({
...
});

return mongoose.model('user', UserSch);
}

为什么我必须这样做,而我见过的所有示例都不需要这样做?

谢谢!

其他信息

如果我将 user.js 移至与 index.js 相同的文件夹并执行 var User = require('./user'),一切都会按预期运行。

最佳答案

试试这个代码!!!

index.js

var mongoose = require('mongoose');
mongoose .connect(connectionString)
var mongoDb = mongoose.connection

mongoDb.on('error', () => {
server.log('error', `Unable to connect to database: ${config.database.connectionString}`)
})

mongoDb.once('open', () => {
server.log('info', `Connected to database: ${config.database.connectionString}`)
})


// Load all Mongoose models
require('./../models/user');

//Using Model
var userModel = mongoose.model('user');

userModel.findOne({ _id: "id..." })

User.js

var mongoose = require('mongoose');

var UserSch = new mongoose.Schema({
...
});

module.exports = mongoose.model('user', UserSch);

关于javascript - Mongoose 导入模型不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com