1 eslint规则修改
在win10上面开发,报了一条eslint规则报错
在.eslintrc
文件 rules
里面 配置 "linebreak-style": [0 ,"error", "windows"]
, //允许windows开发环境
此外,在mac平台下,vscode的eslint自动校验不起作用,安装
npm i eslint-plugin-html -D
即可
2 如何在vscode调试代码
官方提供的eggjs插件在vscode中debug配置好像有点问题,启动不起来,百度搜了一个配置如下:
按F5启动即可
1 | // .vscode/launch.json |
3 使用egg-redis如何存储其他类型的数据
偷懒请使用 JSON.stringify ~,另外Redis 现在也支持 JSON 格式了。
1 | await app.redis.set('foo', { aaaa: 123, bbbb: '123' }); |
4 token鉴权
中间件代码
1 | 'use strict' |
生成token
1 | const loginToken=function(data, expires = 7200) { |
6 egg-validate验证参数
6.1 application/x-www-form-urlencoded
一般传参content-type
为application/x-www-form-urlencoded
,这样参数值为数字时,传到后台是字符类型,需要做个转换
1 | // config/config.default.js |
1 | this.ctx.validate({ |
6.2 application/x-www-form-urlencoded
由于并不能很好地解析嵌套数据的类型,后面content-type
设置为’application/json’,postman测试请用raw
1 | this.ctx.validate({ |
7 数据库操作
由于egg-mysql
提供的功能较为简单,egg提供了另外一种方案Sequelize
,
安装:1
npm install --save egg-sequelize mysql2
在 config/plugin.js 中引入 egg-sequelize 插件
1 | exports.sequelize = { |
在 config/config.default.js
中编写 sequelize
配置
1 | config.sequelize = { |
由于mysql推荐命名为小写字母+下划线,接口使用驼峰命名法,需要做一个转换,官方并没有提供配置,这里找了issue上提供的一个方法,加上hooks
使用:1
2
3
4
5
6const User = app.model.define('user', {
...
userAge: { //由于加上hook设置后,这里会自动加上field对应user-age
type: INTEGER,
},
});
8 centos7部署部分
请参考我另外几篇笔记