共计 1909 个字符,预计需要花费 5 分钟才能阅读完成。
nodejs+koa+Sequelize 实际
- Node.js® 是一个开源、跨平台的 JavaScript 运行时环境。
- Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造,致力于成为 web 利用和 API 开发畛域中的一个更小、更富裕表现力、更强壮的基石。通过利用 async 函数,Koa 帮你抛弃回调函数,并无力地加强错误处理。Koa 并没有捆绑任何中间件,而是提供了一套优雅的办法,帮忙您疾速而欢快地编写服务端应用程序。
- Sequelize 是一个基于 promise 的 Node.js ORM, 目前反对 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具备弱小的事务反对, 关联关系, 预读和提早加载, 读取复制等性能。
- pkg 能够将 Node.js 我的项目打包为可执行文件,甚至能够在未装置 Node.js 的设施上运行。
根本架构
**model 层:数据长久化,并提共数据处理,长久化操作接口
control 层:业务模块流程管制,调用 service 层接口
service 层:业务操作实现类,调用 model 层接口 **
中间件
:
中间件 | 作用特点 |
---|---|
koa-static | 动态资源门路 |
koa-logger | 日志打点中间件 |
koa2-cors | 跨域解决 |
koa-jwt | 次要提供路有权限管制的性能,它会对须要限度的资源申请进行查看 |
koa-body | 是一个能够帮忙解析 http 中 body 的局部的中间件,包含 json、表单、文本、文件等。 |
Sequelize | Sequelize 是一个基于 promise 的 Node.js ORM, 目前反对 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具备弱小的事务反对, 关联关系, 预读和提早加载, 读取复制等性能。 |
koa-router | koa 的一个路由中间件,它能够将申请的 URL 和办法(如:GET、POST、PUT、DELETE 等)匹配到对应的响应程序或页面 |
数据库相干
-
数据库配置
const config = { database: "data_base", // 数据库名称 username: "root", // 用户名 password: "xxxx", // 明码 host: "8.16.23.x", // 主机地址 port: "3306", // 端口号 dialect: "mysql", // 数据库类型,反对: 'mysql', 'sqlite', 'postgres', 'mssql' // logging: true, // 是否启用日志 }
-
数据库链接
const config = require('./dbconfig') // 引入数据库配置信息 const {Sequelize, DataTypes ,Op} = require("sequelize") // 引入 sequelize 依赖 const sequelize = new Sequelize( config.database, config.username, config.password, { dialect: config.dialect, dialectOptions: { dateStrings: true, typeCast: true }, host: config.host, port: config.port, logging: config.logging, pool: { // 连接池配置 min: 0, // 最小连接数 max: 5, // 最大链接数 idle: 30000, acquire: 60000, }, define: { // 字段以下划线(_)来宰割(默认是驼峰命名格调)underscored: true }, timezone: '+08:00' } )
3、定义表构造
const {sequelize, DataTypes} = require("../config/connect") const alliances = sequelize.define( "aw_table", { id: {type: DataTypes.INTEGER(11), allowNull: false, // 是否容许为空 autoIncrement: true, primaryKey: true, // 是否主键 }, title: { type: DataTypes.STRING, allowNull: false, comment: '名称' }, }, { timestamps: true, // 不想要 createdAt createdAt: 'create_time', // 想要 updatedAt 然而心愿名称叫做 updateTimestamp updatedAt: 'update_time' } ) // alliances.sync({force:true}) // 是否主动创立表
服务层
正文完
发表至: javascript
2023-02-15