为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消