connection.query('SELECT * FROM users WHERE id = ?', ['123'], function(err, rows) {
if (err) {
// error
} else {
for (let row in rows) {
processRow(row);
}
}
});
module.exports = {
up: (queryInterface, Sequelize) => {
// logic for transforming into the new state
},
down: (queryInterface, Sequelize) => {
// logic for reverting the changes
}
}
当我们安装好MySQL后,Node.js程序如何访问MySQL数据库呢?
访问MySQL数据库只有一种方法,就是通过网络发送SQL命令,然后,MySQL服务器执行后返回结果。
对于Node.js程序,访问MySQL也是通过网络发送SQL命令给MySQL服务器。这个访问MySQL服务器的软件包通常称为MySQL驱动程序。不同的编程语言需要实现自己的驱动,MySQL官方提供了Java、.Net、Python、Node.js、C++和C的驱动程序,官方的Node.js驱动目前仅支持5.7以上版本,而我们上面使用的命令行程序实际上用的就是C驱动。
目前使用最广泛的MySQL Node.js驱动程序是开源的mysql,可以直接使用npm安装。
ORM
这就是传说中的ORM技术:Object-Relational Mapping
用Sequelize查询pets表
注意mysql是驱动,我们不直接使用,但是sequelize会用。
配置config.js
Sequelize的使用
Sequelize有一个基础模型
创建表结构 (queryInterface.createTable)
"自动化"当表被执行和回滚时的操作(up,down)
Sequelize 来实现表字段关联 (指定外键)
下一个示例是具有外键的迁移。您可以使用引用来指定外键:
核心代码
使用transaction(事务)来创建唯一索引和增加一个列
核心代码:
动态配置
默认情况下,配置文件是一个名为config.json的JSON文件。但是有时您需要动态配置,例如访问环境变量或执行其他代码来确定配置。 幸运的是,Sequelize CLI可以读取.json和.js文件。可以使用.sequelizerc文件进行
example: