简体   繁体   English

在 express app.js 中需要 mongoose 的所有 model

[英]require all model of mongoose in express app.js

In my app.js of express app, I always have to include model every time I created a model在我的 express 应用程序的 app.js 中,每次创建 model 时,我总是必须包含 model

require('./models/Users')
require('./models/Projects')

Is there a way to avoid this?有没有办法避免这种情况? something like require('./models/*) ?类似require('./models/*)东西?

Using native nodejs , You can read the directory and load/require modules dynamically .使用本机nodejs ,您可以读取directorydynamically加载/需要模块。

const fs = require("fs");
const path = require("path");
const models = fs.readdirSync("./models/");
models.forEach((dir) => {
  if (fs.statSync(dir).isFile) require(path.join("./models/", dir));
});

Util:用途:

const getModels = (dir) => {
  return fs
    .readdirSync(dir)
    .filter((file) => fs.statSync(file).isFile)
    .map((file) => require(path.join("./models/", file)));
};
module.exports ={getModels}

// How to use // 如何使用

const models = getModels("./models/")

using glob to get all file in models path使用glob获取模型路径中的所有文件

var glob = require( 'glob' )
  , path = require( 'path' );

glob.sync( './models/**/*.js' ).forEach( function( file ) {
  require( path.resolve( file ) );
});

Create a Separate file which will include all the exported module file and just export on objects and use it whenever required,创建一个单独的文件,其中将包含所有导出的模块文件,并仅导出对象并在需要时使用它,

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM