背景
上一篇已经完成了sequelize的所以讲解了。但是难免会遇到一个问题,那就是随着业务的壮大。系统的model会变的非常多。这个时候,如何引用也是一件麻烦事。
本篇文章分享如何实现自动扫描所有model并导入。
自动扫描并导入
在存放model的文件夹里头新建一个文件module.js。
输入:
const fs = require('fs');
const path = require('path')let files = fs.readdirSync(__dirname);let js_files = files.filter((f)=>{return f.endsWith('.js') && f != path.basename(__filename);
}, files);module.exports = {};for (let f of js_files) {console.log(`import model from file ${f}...`);let name = f.substring(0, f.length - 3);module.exports[name] = require(__dirname + '/' + f);
}
上面的脚本就是实现自动扫描并导出当前文件夹下的所有的model。
引用
上面经过module.js自动扫描之后,所有的model,都在model里头了。所以引用就很简单了,只要引用model.js即可。
例如:
const model = require('./model');letPet = model.Pet,User = model.User;var pet = await Pet.create({ ... });