Javascript Mongoose模型在init函数退出后立即消失

Javascript Mongoose模型在init函数退出后立即消失,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,编辑 我想我已经发现了问题。。。 我试着在某个地方使用process.env.PWD,但除了Mongoose之外,它都能正常工作。删除了它的用法,一切都突然正常了。有人能解释一下原因吗? 结束编辑 启动时,我的应用程序会做一些事情,比如定义路线和设置猫鼬 /init/db.js module.exports = function () { const {url, options} = getCredentials(); mongoose.connect(url, options

编辑

我想我已经发现了问题。。。 我试着在某个地方使用process.env.PWD,但除了Mongoose之外,它都能正常工作。删除了它的用法,一切都突然正常了。有人能解释一下原因吗?
结束编辑

启动时,我的应用程序会做一些事情,比如定义路线和设置猫鼬

/init/db.js

module.exports = function () {
    const {url, options} = getCredentials();

    mongoose.connect(url, options);

    // This requires the files that have the schemas in 'm
    loadSchemas();

    console.log(require('mongoose')); // Shows all models
};
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const User = new Schema({
    username: {type: String, required: true, unique: true},
    email: {type: String, required: true, unique: true},
    registration_date: {type: Date, default: Date.now, required: true},
    birthdate: {type: Date}
});

mongoose.model('User', User);
require(`${process.env.APP_DIR}/init/db`)();
console.log(require('mongoose')); // Not a single model in it
示例架构文件(user.js)

/init/db.js
中,登录
需要('mongoose')
仍然显示所有模型,并且可以访问,在该函数调用之后,登录
require('mongoose')
会显示一个mongoose对象,就像刚刚创建的一样

app.js

module.exports = function () {
    const {url, options} = getCredentials();

    mongoose.connect(url, options);

    // This requires the files that have the schemas in 'm
    loadSchemas();

    console.log(require('mongoose')); // Shows all models
};
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const User = new Schema({
    username: {type: String, required: true, unique: true},
    email: {type: String, required: true, unique: true},
    registration_date: {type: Date, default: Date.now, required: true},
    birthdate: {type: Date}
});

mongoose.model('User', User);
require(`${process.env.APP_DIR}/init/db`)();
console.log(require('mongoose')); // Not a single model in it
当正常启动应用程序时,这里没有问题,但是因为我也编写了DB单元测试,它会因为错误而崩溃

  throw new mongoose.Error.MissingSchemaError(name);
  ^
  MissingSchemaError: Schema hasn't been registered for model "User".
  Use mongoose.model(name, schema)

您还需要从单元测试调用loadSchema。整个应用程序都是从单元测试加载和启动的,因为它是一个包含路由和单元测试的单一测试调用。我想我已经发现了问题。。。我试着在某个地方使用process.env.PWD,但除了Mongoose之外,它都能正常工作。删除了它的用法,一切都突然正常了。有人能解释一下原因吗?