热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sequelizeauto简易使用封装一个端口

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;


推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
author-avatar
欢不是欢7
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有