当我们添加一个路由时 每次都需要在app.js 去设置路由 这样比较繁琐。
我们可以通过创建一个模块来 自动设置文件夹下的所以路由。
在路由表文件夹下创建一个index.js
通过 fs 获取文件夹下所有.js的文件 index.js除外(readdirSync方法)
再获取文件的路径(forEach方法) 因为app.js里面设置的原理也是通过路径 来获取路由对象的
再通过数组保存路径
let fs=require('fs');
let path=require('path');
let apis=[];
fs.readdirSync(__dirname)
.filter(function(filename){
return (filename!=='index.js')&&(filename.slice(-3)==='.js');
})
.forEach(function(filename){
let filepath=path.join(__dirname,filename);
apis.push(require(filepath))
})
var express=require('express');
var router=express.Router();
router.use('/',apis);
module.exports=router;
代码如图
然后在app.js里面 添加一个模块的路由就行了 以后访问就是 http://localhost:3000/apis/xxx
我这里用的自己主机
注意!! url那里的apis 是和你自己设置路由的名字是一样的 不然不能访问
下面我们来试试
数据库表的导入差不多 我在models 下建了table.js 模块
代码如下
let Sequlize=require('sequelize');
let fs=require('fs');
let path=require('path');
let sequelize=new Sequlize("test","stu","Ydyykf17",{
host:"192.168.1.52",
dialect:"mysql",
timezone:"+8:00"
})
let db={};
fs.readdirSync(__dirname)
.filter(function(filename)
{
return (filename!=='tables.js')&&(filename.slice(-3)==='.js');
})
.forEach(function(filename){
let filepath=path.join(__dirname,filename);
let model=sequelize.import(filepath);
db[model.name]=model;
})
sequelize.sync();
module.exports = {
db
};
第一次写 不足之处可以支持 一起进步
谢谢哦