
eggjs
魔笛Love
这个作者很懒,什么都没留下…
展开
-
egg插件开发
egg插件开发初始化插件,可以直接使用脚手架来初始化插件的代码mkdir plugin-test && cd plugin-testnpm init egg --type=pluginnpm i在初始化过程中填入相关信息,本次初始化的插件名称叫做egg-plugin-test。初始化好插件内容之后就可以进行内容的开发了,例如本次我将会在hepler中拓展一个叫做testPlugin的方法,那么需要在插件目录下创建文件/app/extent/helper.js,并加入一下测试代码原创 2020-11-04 09:01:18 · 4824 阅读 · 0 评论 -
Sequelize学习整理
以下是本人在使用egg.js的ORM框架Sequelize时的一些经验,希望能给学习和使用egg.js并使用egg-Sequelize进行开发的小伙伴一些帮助,如果在阅读时有什么问题,欢迎和我联系。1、数据表定义以下为一个测试的数据库定义表:module.exports = app => { const { STRING, BIGINT, DATE, BOOLEAN, TEXT, INTEGER } = app.Sequelize; const model = app.model.de原创 2020-10-29 11:52:44 · 11677 阅读 · 0 评论 -
Sequelize的where进阶操作:$
当一个表A需要连接表1和表2时,且在关联查询时只要表1和表2任意一个有数据则A中记录需要被查出const option = {where: {[this.app.Sequelize.Op.or]: [{ ‘positiveDatas.uidpositiveDatas.uidpositiveDatas.uid’: ‘100487’ },{ ‘negativeDatas.uidnegativeDatas.uidnegativeDatas.uid’: ‘100487’ }],},include:原创 2020-10-22 09:37:41 · 3217 阅读 · 0 评论 -
Sequelize数据库中文排序
首先要排序的字段要是索引,然后一下是Sequelize的代码const sequelize = this.ctx.model;const datas = await this.ctx.model.Folder.findAll({where: { pid: 81 },order: [[ sequelize.literal(‘convert(name using gbk)’), ‘DESC’ ]]});按照name字段来进行排序,DESC表示逆序const sequelize = this.ctx原创 2020-10-22 09:36:34 · 13773 阅读 · 1 评论 -
egg动态修改日志打印等级
动态修改日志打印等级egg日志打印级别分别是:DEBUG、INFO、WARN、ERROR以及NONE方法一:修改配置文件,并重启进程// 修改level字段以及consoleLevelconfig.logger = { level: 'DEBUG', consoleLevel: 'DEBUG', allowDebugAtProd: true,};然后使用命令行的方式重启进程或者使用其他插件重启进程方法二:直接修改app.loggers.logger// 这里修改为WARNc原创 2020-09-01 08:58:31 · 1863 阅读 · 0 评论 -
axios使用form-data进行文件上传
axios文件上传使用form-data进行文件的上传const FormData = require('form-data');const form = new FormData();form.append('upload1', fs.createReadStream(filePath1));form.append('upload2', fs.createReadStream(filePath2));form.append('data', 'data');const headers = aw原创 2020-09-01 08:57:43 · 4451 阅读 · 0 评论 -
egg自带ctx.curl文件上传
ctx.curl文件上传配置files属性files支持格式: String | ReadStream | Buffer | Array | Object。单文件上传ctx.curl(url, { method: 'POST', files: String | ReadStream | Buffer, data: { data: 'data', },});ctx.curl(url, { method: 'POST', files: filePath, dat原创 2020-09-01 08:56:58 · 3494 阅读 · 0 评论 -
egg接收文件上传
file模式接收文件配置文件config.multipart = { /** 文件接收配置 */ mode: 'file', tmpdir: path.resolve(workerPath, '../serverFiles/temporaryFile'), cleanSchedule: { cron: '0 0 4 * * *', }, fileSize: '100mb', whitelist() { return true; }, /** 文件接收配原创 2020-09-01 08:55:59 · 4387 阅读 · 6 评论 -
egg自带ctx.curl下载文件
查看ctx.url的源码发现,该方式底层是使用到例如urllib的request方法,该方法只是默认把数据转为Buffer就直接返回了,下载文件的话只需要将Buffer转为Stream即可;返回的数据类型可以通过设置dataType为json或text;如果将请求的writeStream配置为一个可写流,那么请求成功之后会自动将文件写入该流中完成下载。下载方法一const result = await this.ctx.curl(url, { method, data);await bufferT原创 2020-08-31 09:03:54 · 2922 阅读 · 0 评论 -
axios文件下载的各种方法
axios查看源码发现axios返回的内容默认是Stream格式的;如果没有设置responseType的话,返回内容将会从Stream转为Buffer再转为String;如果responseType为stream的话不进行转换;如果responseType为arraybuffer的话将Stream转为Buffer;但是如果想把Buffer转为String再转回Buffer的话将会出问题(默认使用utf8进行Buffer的编码和解码),有的文件这样是可以的,但是Excel文件这样做的话两次Buff原创 2020-08-27 16:48:39 · 7662 阅读 · 0 评论 -
Sequelize的读写分离
Sequelize的读写分离操作(Eggjs为例)读写分离操作基于主从复制,请在主从复制部署好之后再进行读写分离操作config.sequelize = { dialect: 'mysql', replication: { read: [ { host: '127.0.0.1', username: 'root', port: 33306,...原创 2019-12-11 18:03:56 · 1741 阅读 · 0 评论 -
关于Sequelize的分组查询与分组统计
根据groupId进行分组分组const datas = await ctx.model.Data.findAll({ where: { xxx }, group: 'groupId',});原创 2019-12-11 16:47:58 · 14594 阅读 · 0 评论 -
VSCode调试egg.js
转载自https://www.jianshu.com/p/bdf0d8eb7112转载 2019-04-16 13:43:21 · 2028 阅读 · 0 评论 -
Sequelize 和 MySQL/MariaDB 对照
转载至:https://segmentfault.com/a/1190000003987871#articleHeader29转载 2019-04-22 09:31:47 · 1260 阅读 · 0 评论 -
egg服务重启及child_process的使用
egg服务的重启,这里使用到了child_process插件。安装插件:npm install child_process --save使用插件:const callfile = require('child_process');callfile.spawn(脚本路径, [ '-P', port, '-W', workPath ], { cwd: workPath, stdio: 'ig...原创 2019-04-25 11:10:37 · 3592 阅读 · 0 评论 -
玩转node子进程child_process
转载至:https://segmentfault.com/a/1190000007735211?utm_source=tag-newest参考:http://nodejs.cn/api/child_process.html转载 2019-04-25 13:50:16 · 1435 阅读 · 0 评论 -
egg-sequelize的事务操作
egg-sequelize的事务操作let transaction;try { // 建立事务对象 transaction = await this.ctx.model.transaction(); // 事务增操作 await this.ctx.model.VirtualDeptMember.create({ JSON格式数据 },...原创 2019-07-04 10:26:35 · 18722 阅读 · 0 评论 -
egg-sequelize的级联删除
parent为参照表,children外键关联parent。const parents = await this.ctx.model.Parent.findAll({ where: { id: parents_id }, include: [{ model: this.ctx.model.Children, as: 'children', ...原创 2019-07-04 17:12:20 · 3337 阅读 · 0 评论 -
Node.js的RSA非对称加解密
RSA非对称加解密const writeData = '哈哈哈';const publicKey = `-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVjuVnj34QuRwmBxVCU1Fk+IuYCAANchHQGeDnnAbGUWYOIsIKCMVCDYlQqL0GL6sC5Jpx3M6GSQUgx...原创 2019-09-24 17:09:25 · 1759 阅读 · 0 评论 -
JS文件流加解密
文件流加解密const crypto = require('crypto');const password = 'password';const path = '需加密文件的路径';const pathAuth = '保存加密文件的路径';const readStream = fs.createReadStream(path);const encryptStream = crypt...原创 2019-09-24 17:14:10 · 2285 阅读 · 0 评论 -
egg项目部署及PM2的使用
egg部署在本地开发时,我们使用 egg-bin dev 来启动服务,但是在部署应用的时候不可以这样使用。因为 egg-bin dev 会针对本地开发做很多处理,而生产运行需要一个更加简单稳定的方式。所以本章主要讲解如何部署你的应用。一般从源码代码到真正运行,我们会拆分成构建和部署两步,可以做到一次构建多次部署。构建JavaScript 语言本身不需要编译的,构建过程主要是下载依赖。但如果...原创 2019-03-21 10:34:46 · 24841 阅读 · 0 评论