eggjs
不求甚解bc
这个作者很懒,什么都没留下…
展开
-
node使用JWT
JWT是目前使用比较广泛的登录鉴权方案,可以灵活生成JWT以及校验,无需把用户登录token反复存数据库或者redis。1、安装JWT生成插件npm install jsonwebtoken --save2、生成tokenvar jwt = require('jsonwebtoken');var token = jwt.sign({ name: '张三' }, 'this is sign',{ expiresIn:60 // 单位:秒});3、校验JWTvar resu原创 2020-09-08 21:15:39 · 3269 阅读 · 0 评论 -
egg-redis性能优化
服务端复杂的数据库查询会严重降低访问速度,我们需要将一些常用的接口数据进行存储,用户在获取数据的时候,直接将数据从内存中读取,不进行数据库查询,可以大大提高服务器性能。存储方式主要有文件存储和内存存储,文件存储通过fs模块写入读取txt文件,不多说;这里使用redis内存存储。一、下载安装redis软件1、windows安装,下载目录:https://github.com/Microsof...原创 2019-09-03 23:41:15 · 7319 阅读 · 0 评论 -
egg模板公共方法
1、egg在渲染模板数据时,有些数据需要做一些处理,比如接口返回时间戳,需要转换成时间格式,就像vue的过滤器功能。2、我们使用egg提供的模板扩展功能,使用步骤如下:(1)在app/extend文件夹下新建helper.js(文件名可以自定义),这里以转换时间戳为例//silly-datetime为格式化时间的一个插件,个人比较喜欢let sd = require('silly-...原创 2019-08-16 22:55:11 · 6343 阅读 · 0 评论 -
egg表单提交csrf验证
1、egg在进行表单提交时,会验证csrf,以防止网站被攻击。2、在中间件中设置全局csrf变量,并将csrf存在state中,给前端使用module.exports = options => { return async function adminauth(ctx, next) { // 定义全局csrf安全认证变量 ctx.state.csrf = ctx...原创 2019-07-26 22:16:42 · 7583 阅读 · 0 评论 -
egg请求gzip压缩
1、为了节省服务器带宽,避免客户端请求卡顿,需要对较大的请求返回值进行gzip压缩。2、使用koa-compress插件进行代码压缩3、下载依赖npm i koa-compress -S4、在egg中间件使用gzip压缩功能,在middleware文件夹下新建compress.js文件(文件名可以自定义)module.exports = require('koa-compr...原创 2019-07-13 11:02:18 · 7713 阅读 · 0 评论 -
egg中间件匹配路由
egg中间件1、在app/middleware文件夹下新建auth.js文件,每一个文件为一个中间件module.exports = options => { return async function auth(ctx, next) { // 如果有用户信息,则进入后台管理页面,否则进入登录页 if (ctx.cookies.get('userInfo')){...原创 2019-06-26 10:50:01 · 8315 阅读 · 0 评论 -
egg启动执行
egg开启服务时,有些需要启动就立即执行的内容。方法如下:1、根目录新建app.js2、生命周期module.exports = app => { // 开始前执行 app.beforeStart(async () => { }); // 准备好执行 app.ready(async () => { // 举例,获取数据库图片...原创 2019-02-01 17:36:56 · 11480 阅读 · 0 评论 -
egg定时和定点任务
egg提供了强大的定时任务系统。通过定时任务,可以系统修改服务的缓存数据,以便处理需要定时更新的数据。在app/schedule目录下新建一个js文件,每一个js文件就是一个定时任务。一、定时任务(以定时更新cache数据为例)1、设置1分钟间隔,可以在服务其他地方获取this.ctx.app.cache的值module.exports = { schedule: { ...原创 2018-11-14 14:12:30 · 15971 阅读 · 0 评论 -
Linux服务器部署egg,日志
如果Linux服务器node,mysql环境还不会配置,请先看https://blog.csdn.net/bocongbo/article/details/837889501、将项目git clone到服务器目录,目录自定2、进入项目目录,npm install安装依赖包3、npm start运行项目,如果运行失败,则检查一下端口是否被占用,netstat -lnp|grep +端口号...原创 2018-11-08 16:53:12 · 9698 阅读 · 0 评论 -
egg接收存储图片
用户上传图片到服务器,服务器接收并存在本地。虽然现在大多数网站会选择第三方服务器做图片存储,比如七牛,但是很多小型网站,或者初级研发者,还会使用本地图片存储。1、如果前端用vue开发,上传图片请参考:https://blog.csdn.net/bocongbo/article/details/816707942、使用mz-modules依赖处理表单数据。因为官方提供的方法,多文件上传不友好...原创 2018-11-02 16:03:57 · 10609 阅读 · 5 评论 -
egg跨域请求
web端访问服务器,存在跨域请求问题,egg作为服务端,需要开放请求域,方法如下:1、安装egg-corsnpm i egg-cors -S2、在config/plugin.js声明exports.cors = { enable: true, package: 'egg-cors',};3、在config/config.default.js配置 //...原创 2018-11-02 15:46:41 · 9459 阅读 · 0 评论 -
node服务端生成七牛token
图片资源存在自己的服务器,客户端访问的时候,是非常吃带宽的。七牛云就很好的解决了这个问题,可以把图片,视频等资源存放在七牛的服务器,自己的服务器只提供数据,对服务器的带宽要求就比较低了。1、实现流程(1)客户端请求服务器,获取token(2)客户端使用token直接上传到七牛云(3)七牛云返回图片{hash: "gtwwahfawaqew", key: "hdjksahfuewa....原创 2018-11-09 14:53:32 · 5987 阅读 · 1 评论 -
egg渲染html模板
后台服务的模板引擎有很多,但我还是喜欢用.html格式的模板1、安装模板插件egg-view-ejs,虽然是ejs模板插件,但是后面会设置成html模板npm i egg-view-nunjucks -S2、在config/plugin.js里声明该插件exports.nunjucks = { enable: true, package: 'egg-view-nunju...原创 2018-10-16 14:35:50 · 20866 阅读 · 3 评论 -
egg接收请求参数
1、get请求let query = this.ctx.query;let name = query.name;let id = query.id;2、post请求let query = this.ctx.request.body;let name = query.name;let id = query.id;3、接口返回值this.ctx.body = { ...原创 2018-10-16 14:20:12 · 14514 阅读 · 1 评论 -
egg mysql
1、安装mysqlnpm i egg-mysql -S2、在config/plugin.js里声明改插件exports.mysql = { enable: true, package: 'egg-mysql',};3、在config/config.default.js里配置config.mysql = { // 单数据库信息配置 clie...原创 2018-10-16 14:07:13 · 12345 阅读 · 5 评论