首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

node-koa 框架 项目搭建 🏗

安装两个包 可以两个一起下载 npm i mysql2 sequelize 连接到数据库 新建 db/seq.js const { Sequelize } = require('sequelize')...我们还是需要使用sequelize,这是它官网关于model的 介绍 // 解构出 const { Sequelize, Model, DataTypes } = require("sequelize"...模型同步 定义模型时,你要告诉 Sequelize 有关数据库中表的一些信息. 但是,如果该表实际上不存在于数据库中怎么办? 如果存在,但具有不同的列,较少的列或任何其他差异,该怎么办?...这就是模型同步的来源.可以通过调用一个异步函数(返回一个Promise)model.sync(options). 通过此调用,Sequelize 将自动对数据库执行 SQL 查询....解构出参数,判断它们如果为空,返回状态码 400,并在body中返回code码(自己定义),和错误信息。

3.3K20

Node 架构从三层到 N 层,实现代码重用和解耦

另外你会发现不同业务代码包含很多重复的SQL语句,这样会导致后期的可维护性也会很差,我们可以看看相应的代码,图2是两层嵌套的DML操作。...的每次DML操作结果都是返回一个Promise对象,这是符合我的初衷的,业务层通过执行then函数处理成功返回的结果,通过catch函数捕获异常对象,另外Sequelize支持外键查询以及事务处理,完全符合我们的项目开发要求...var nickname = result[0].nickname; var avatar = result[0].avatar;...如果参数合法,异步调用Service业务层,Service层会对Dao层发起异步DML操作,Dao层会通过Sequelize的ORM技术操作数据库,Sequelize执行完返回Promise对象给Dao...操作成功,则会执行then函数,then函数以及catch函数的执行结果通过callback的方式返回给路由处理层。

7.4K31

koa实战_2023-02-28

register', (ctx, next) => {}) 通过引入 koa 的路由中间件 koa-router,我们可以设置项目的路由,通过在构造函数中传入prefix:'/user'可以设置路由的前缀,以作为不同功能模块的区分...= { UserValidError = { code:'10001', message:'用户校验失败', result:'' }, UserLoginError...= { code:'10002', message:'用户登录失败', result:'' } } 将错误归集起来了之后,我们只需要在捕获到这个错误的时候使用它 // ctx...这里只记录密码对比和 token 下发的步骤 // 密码对比 bcrypt.compareSync('当前密码', '用户传递过来的密码') // 如果相同返回true,如果不同返回false //..., '自己设置的加密串', { expiresIn: '1d' /*token的有效时间*/, }) ctx.body = { code: 200, message: '登录成功', result

1.2K50

koa实战

main.js 中引入 koaconst koa = require('koa')const app = new Koa()app.listen(3000, () => { // 监听成功的回调 console.log...register', (ctx, next) => {})通过引入 koa 的路由中间件 koa-router,我们可以设置项目的路由,通过在构造函数中传入prefix:'/user'可以设置路由的前缀,以作为不同功能模块的区分目录结构的划分我们在...= { UserValidError = { code:'10001', message:'用户校验失败', result:'' }, UserLoginError = {...code:'10002', message:'用户登录失败', result:'' }}将错误归集起来了之后,我们只需要在捕获到这个错误的时候使用它// ctx中提供了当前的app,其中有一个...这里只记录密码对比和 token 下发的步骤// 密码对比bcrypt.compareSync('当前密码', '用户传递过来的密码') // 如果相同返回true,如果不同返回false// 下发token

1.1K30

【Node】sequelize 使用对象的方式操作数据库

host: ’10.10.10.10', // ip port: 8800, // 端口 logging: (msg) => { // 日志信息,打印出每个操作生成的具体的 sql语句 console.log...('NOW') }, end_time: { [Op.gt]: sequelize.fn('NOW') }, }, }, }); 3.2 查询 - 关联表 简单描述下 通常不同类型的数据存放不同的表...,但是不同表的数据之间是有关联的,比如 用户表和 评论表,所以需要表与表之间建立联系 常用的三种关联类型就 一对一,一对多,多对多 建立这种关联通常是通过外键的形式,比如在 a 表中 存放 b 表中有关联的数据的...: personComment, as:"comments", required: true // 表示该 comment 数据是否必须,如果为空那么整个person对象都不返回...person.findAll({ include: [ { model: personComment, limit:10 }, ], }); 而是限制返回的数据

8.1K20
领券