Sequelize.js:一个基于 promise 的 Node.js ORM
【摘要】
中文文档摘要:
Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL...
中文文档摘要:
Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能。
文档
- 中文:https://www.sequelize.com.cn/
- 英文:https://sequelize.org/
- npm: https://www.npmjs.com/package/sequelize
- github: https://github.com/sequelize/sequelize
安装
$ node -v
v16.14.0
pnpm i sequelize mysql2
依赖 package.json
{
"type": "module",
"dependencies": {
"mysql2": "^2.3.3",
"sequelize": "^6.21.3"
}
}
定义模型
import { Sequelize, DataTypes } from "sequelize";
// 连接到数据库
const sequelize = new Sequelize("mysql://root:123456@127.0.0.1:3306/data");
// sequelize.define(modelName, attributes, options)
const User = sequelize.define(
"User",
{
name: DataTypes.STRING,
age: DataTypes.INTEGER,
},
{
// 表名
tableName: "table_user",
// 时间戳,默认createdAt/updatedAt
timestamps: false,
createdAt: "create_time",
updatedAt: "update_time",
}
);
CURD示例
async function createRow() {
const user = await User.create({ name: "Jane", age: 23 });
// INSERT INTO `table_user` (`id`,`name`,`age`) VALUES (DEFAULT,?,?);
console.log(user.toJSON());
// { id: 8, name: 'Jane', age: 23 }
}
async function selectRow() {
const user = await User.findByPk(3);
// SELECT `id`, `name`, `age` FROM `table_user` AS `User` WHERE `User`.`id` = 3;
console.log(user.toJSON());
// { id: 3, name: 'Tom', age: 23 }
}
async function selectRows() {
const users = await User.findAll();
// SELECT `id`, `name`, `age` FROM `table_user` AS `User`;
console.log(users.map((user) => user.toJSON()));
// [
// { id: 2, name: 'Tom', age: 23 },
// ]
}
async function updateRow() {
const result = await User.update(
{ name: "Doe" },
{
where: {
id: 1,
},
}
);
// UPDATE `table_user` SET `name`=? WHERE `id` = ?
console.log(result);
// [ 1 ]
}
async function deleteRow() {
await User.destroy({
where: {
id: 1,
},
});
// DELETE FROM `table_user` WHERE `id` = 1
}
(async () => {
// await createRow()
// await selectRow();
// await selectRows();
// await updateRow();
// await deleteRow();
})();
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/126260848
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)