
nodejs
魔笛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 评论 -
JS获取当天、本周、本月、本年开始时间和结束时间
一天的开始时间function startTime(time) { const nowTimeDate = new Date(time); return nowTimeDate.setHours(0, 0, 0, 0);}一天的结束时间function endTime(time) { const nowTimeDate = new Date(time); return nowTimeDate.setHours(23, 59, 59, 999);}获取当天开始时间和结束时间f原创 2020-09-02 10:51:03 · 9268 阅读 · 9 评论 -
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 评论 -
node关于文件夹压缩和解压的方式
.Zip方式压缩使用archiver进行压缩const fs = require('fs');const archiver = require('archiver');const output = fs.createWriteStream('archiverZip.zip');const archive = archiver('zip');archive.on('error',...原创 2019-12-27 14:12:24 · 5823 阅读 · 1 评论 -
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 评论 -
Node.js跨编程语言的AES解密
本次加解密的方法为:AES,模式为CBC,填充模式为Pkcs7。使用nodejs的crypto-js进行解密function aesDecrypt(encrypted, key, iv) { // 解密 // 秘钥key以及iv都需要通过Utf8进行转码 // 密文为Base64格式的话,不需要其他转码操作 // 解密之后需要通过toString(CryptoJS.enc.Utf8...原创 2019-12-11 17:06:47 · 1311 阅读 · 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 评论 -
Nodejs对接redis sentinel
Nodejs对接redis sentinel注:该文档的实验环境基于《redis高可用方案redis sentinel的介绍和实践》搭建,如有疑问详见上述文档本文档是对《redis高可用方案redis sentinel的介绍和实践》的一些补充,主要说明使用nodejs来对接redis sentinel,以及进行简单的容灾实验测试。redis-sentinel对接nodejs对接redis ...原创 2019-07-05 16:25:02 · 2409 阅读 · 1 评论 -
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 评论