作者:欢不是欢7 | 来源:互联网 | 2023-09-25 20:26
1.前提已下载sequelizemysql,未下载可看http:blog.csdn.netmy_roadsarticledetails782857682.在项目中:
1. 前提已下载 sequelize mysql,未下载可看http://blog.csdn.net/my_roads/article/details/78285768
2. 在项目中 : npm install sequelize-auto --save
3.创建auto.js
var SequelizeAuto = require('sequelize-auto')
var auto = new SequelizeAuto('hhdj', 'root', 'root', {host: 'localhost',
dialect: 'mysql',
directory: './models', // prevents the program from writing to disk
port: '3306',
additional: {timestamps: false
//...
}}
)
auto.run(function (err) {if (err) throw err;
console.log(auto.tables); // table list
console.log(auto.foreignKeys); // foreign key list
}); 4.创建createModelsExport.js,自动在models生成index.js
let fs = require('fs')
let files = fs.readdirSync('./models')
let models = []
// 解析名称做成驼峰命名法
files.forEach(item => {if (item != 'index.js') {let names = item.split('.')[0].split('_')let name = ''
for (let i &#61; 1; i <names.length; i&#43;&#43;) {name &#43;&#61; names[i].substring(0,1).toUpperCase() &#43; names[i].substring(1)}models.push({name: name, path: &#39;./&#39; &#43; item})}
})
// 文件内容模板
const template &#61; &#96;
var Sequelize &#61; require(&#39;sequelize&#39;);
// 创建数据库连接
var sequelize &#61; new Sequelize(&#39;hhdj&#39;, &#39;root&#39;, &#39;root&#39;, {
host: &#39;localhost&#39;,
dialect: &#39;mysql&#39;,
pool: {
max: 5,
min: 0,
idle: 10000
}
})
// 数据库模型名称及lujing
const models &#61;${JSON.stringify(models, null, 4)}
// 数据模型输出
models.forEach(item &#61;> {
module.exports[item.name] &#61; require(item.path)(sequelize, Sequelize)
})
&#96;
fs.writeFile("./models/index.js", template, function () {console.log(&#39;创建成功&#39;)
})
4.生成的index.js
var Sequelize &#61; require(&#39;sequelize&#39;);
// 创建数据库连接
var sequelize &#61; new Sequelize(&#39;hhdj&#39;, &#39;root&#39;, &#39;root&#39;, {host: &#39;localhost&#39;,
dialect: &#39;mysql&#39;,
pool: {max: 5,
min: 0,
idle: 10000
}
})
// 数据库模型名称及lujing
const models &#61;[{"name": "ApplyInfo",
"path": "./tb_apply_info.js"
},
{"name": "Branch",
"path": "./tb_branch.js"
},
{"name": "Carousel",
"path": "./tb_carousel.js"
},
{"name": "Comment",
"path": "./tb_comment.js"
},
{"name": "CommentRelation",
"path": "./tb_comment_relation.js"
},
{"name": "CommentUser",
"path": "./tb_comment_user.js"
},
{"name": "Coordinate",
"path": "./tb_coordinate.js"
},
{"name": "Forum",
"path": "./tb_forum.js"
},
{"name": "ForumComment",
"path": "./tb_forum_comment.js"
},
{"name": "Impress",
"path": "./tb_impress.js"
},
{"name": "Integral",
"path": "./tb_integral.js"
},
{"name": "IntegralRule",
"path": "./tb_integral_rule.js"
},
{"name": "News",
"path": "./tb_news.js"
},
{"name": "Notice",
"path": "./tb_notice.js"
},
{"name": "PartyStyle",
"path": "./tb_party_style.js"
},
{"name": "Payfee",
"path": "./tb_payfee.js"
},
{"name": "Picture",
"path": "./tb_picture.js"
},
{"name": "Report",
"path": "./tb_report.js"
},
{"name": "StudyFile",
"path": "./tb_study_file.js"
},
{"name": "User",
"path": "./tb_user.js"
},
{"name": "Manager",
"path": "./user_manager.js"
}
]
// 数据模型输出
models.forEach(item &#61;> {module.exports[item.name] &#61; require(item.path)(sequelize, Sequelize)
}) 5.在user.js中引出
var express &#61; require(&#39;express&#39;);
var router &#61; express.Router();
var User &#61; require(&#39;../models/&#39;).User/* GET users listing. */
router.get(&#39;/login&#39;, function(req, res) {var phone &#61; req.query.phone
User.find({where: {phone: phone}}).then( su &#61;> {res.send({code: 200, message: &#39;创建成功&#39;, data: su})}).catch( ex &#61;> {res.send({code: 500, message: &#39;服务器异常&#39;})})
});
module.exports &#61; router;