【金秋打卡】第4天 Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》
课程章节: 【深入浅出讲异常】异步异常与全局异常处理
课程讲师: 7七月
课程内容:
Lin-Validator 使用指南
未知异常
ctx.body = {
msg: 'we made a mistake',
errorCode: 999,
request: `${ctx.method} ${ctx.path}`
}
效验参数
在 app 下面新建一个文件夹 validators 文件夹下面建 validator.js 来写效验类
const {LinValidator, Rule}= require(LinValidator)
// 验证整数
class PositiveIntegerValidator extends LinValidator{
constructor() {
super() //继承必须调用
this.id = [
// 数组中 Rule 是且关系
new Rule('isInit', '需要是正整数', {min: 1}),
]
}
}
module.exports = {PositiveIntegerValidator}
classic.js
// 使用
const v = new PositiveIntegerValidator().validate(ctx)
Lin-Validator获取Http 参数
// 通过 get 获取
v.get('path.id') // 3
// 这时返回数字3, 如果想返回字符串 3
v.get('path.id', parsed = false) // '3'
配置文件与在终端显示异常
在开发环境中 未知错误是不需要暴露给客户端的, 所以现在要判断是否是开发环境
在根目录下 config 文件夹 config.js 文件
module.exports = {
env: ‘dev’,
prod:
}
在写入全局 在 core/init.js
static loadConfig(path = '') {
const configPath = path || process.cwd() + '/config/config.js'
const config = require(configPath)
global.config = config
}
// 初始化调用 initCore 中
InitManager.loadConfig()
在 middlewares/exception.js 中使用
// 如果是开发环境
if(global.config.env === 'dev') {
throw error
}
Sequelize 初始化配置与注意事项
npm install sequelize
连接数据库 在 core/ds.js 中链接
const Sequelize = require('sequelize')
// 接收四个参数 1. 数据名 2. 数据库账号 3.密码 4.js对象
const db = new Sequelize('7yue', 'root', password, {
})
关键信息写在配置文件中
config.js
database: {
dbName: '7yue',
host: '127.0.0.10',
port: 3306,
user: 'root',
password: '123456'
}
安装 mysql 的驱动
npm install mysql2
js对象中的类型
dialect: 'mysql', // 用户指定是数据库的类型
host, // ip
port, // 端口
logging: true, // 显示sql操作
timezone: '+08:00', // 北京时间
defind: {
}
module.exports = {db}
在 models/user.js 中对数据的增删改查
const {db} = require(db)
const {Sequelize , Mobel}= require('sequelize')
class User extends Model {
}
// 对数据进行类型包装
User.init({
// 主键
id: {
type: Sequelize.STRING,
primaryKey: true // 自增
},
nickname: Sequelize.STRING,
email: Sequelize.STRING,
password: Sequelize.STRING,
openid: {
type: Sequelize.STRING(64),
unique: true
}
}, {sequelize: db})
课程收获
对配置文件和数据库连接有了了解
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦