node + express + sequelize服务搭建

Express: 最受欢迎的node后台服务框架,简洁灵活,轻量级

Sequelize:orm(对象映射框架),支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能

使用脚手架创建express架构的node服务并集成sequelize

一,使用express创建项目

  1. 全局安装express中间件

npm install express -g

  1. 进入项目目录初始化

npm init -y

  1. 使用express命令生成项目目录

express

  1. 安装项目依赖

npm install

  1. 使用nodemon工具热更新,以便改动代码时自动热部署

全局安装 npm install -g nodemon

本地安装 npm install nodemon --save

启动脚本前加入nodemon命令

 

如此便完成了项目的创建,接口在routes目录下

创建接口示例文件users.js:

其中接口回调的三参数

req: 接口请求体 可通过req.query获取url参数,通过req.body获取请求体参数

res: 接口响应体 可通过res.send(data) 响应数据回前端

next: 请求调用回调

 在app.js中引用接口

 

启动项目: npm start

项目运行端口设置如下:

 浏览器访问:http://localhost:3000/users/getAll

 

二,集成sequelize连接mysql数据库,创建并管理模型对象

  1. 安装sequelize,脚手架依赖及mysql驱动依赖

npm install sequelize --save

npm install -g sequelize-cli

npm install mysql2 --save

  1. 创建数据库访问层文件

命令:npx sequelize init 此命令创建如下文件夹

Config: 数据库配置文件

Models: 数据模型对象配置文件 sequelize据此动态生成sql执行查询

Migrations: 数据库迁移文件 可根据此文件使用npx sequelize db:migrate 命令初始化数据库表

Seeders: 包含所有种子文件

  1. 修改config/config.json下数据库连接配置
  2. 创建数据库: npx sequelize db:create
  3. 创建数据模型使用如下命令:

npx sequelize model:generate --name User --attributes username:string,gender:string,age:string

--name: 指定模型名称,sequelize默认表名为模型名复数形式,也可配置为同名参考sequelize文档

--attributes: 指定模型属性

上述命令生成models模型文件及migrations数据库迁移文件

  1. 初始化数据库表: npx sequelize db:migrate
  2. 使用npx sequelize seed:generate --name demo-user 生成种子文件用于生成示例数据

--name: 指定种子文件名称

修改生成的XXXXXXXXXXXXXX-demo-user.js文件例如:

 

种子文件修改好后可使用npx sequelize db:seed:all 命令将示例数据插入数据库

如此便建立好了数据库持久层,下面介绍如何在接口调用持久层操作数据库

三, express接口调用sequelize持久层操作数据库

  1. 在步骤‘一,’接口示例文件routes/users.js中引入sequelize创建的模型

var model = require('../models')

可使用 model.user调用user对象

Sequelize创建的模型对象已经内置好了增删查改方法,直接调用方法就可以操作数据库对应的表

model.user.findAll()

model.user.destroy()

model.user.update()

model.user.create()

请求体中获取的参数可以灵活传入持久层,参考sequelize模型查询相关部分学习规则

https://www.sequelize.com.cn/core-concepts/model-querying-basics

示例如下:

 

 

 

 使用同步格式改写异步执行的请求:

 以上便完成了基础的node + express + sequelize + mysql的后台服务架构

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值