NodeJS
遗忘了的自己
谁遗忘了谁,谁放弃了谁
展开
-
Nodejs 开发学习路线
2021 的 Node.js 开发人员路线图1. JavaScript如果你是一名希望掌握一些后端技能的前端开发人员,那么在开始构建 Node.js 应用程序之前,将不必花费大量时间学习 JavaScript。但是,如果你是一个初学者,希望在尽可能短的时间内掌握 Node.js,那么在深入研究 Node.js 环境之前,必须学习以下概念。箭头函数数据类型表达式函数词法this循环和作用域数组模版字符串严格模式ES6/ES7在Node.js中,将面对大量的异步编程,为此,建议学原创 2021-11-15 10:14:53 · 740 阅读 · 0 评论 -
promise 理解
Promise 你需要知道的几点创建 Promise 时(即 new Promise…),内部同步代码会立即执行,异步代码会在次轮事件循环执行try…catch 无法抓取 异步任务 错误, 因为 try…catch 代码在主线程,异步任务在工作线程,在执行异步任务时主代码同步任务try…catch 都已经执行完了Promise.reject(new Error(‘xxx’)) 或 Promise.reject(‘xxxx’) reject 其实是返回错误信息的回调方法,它并不是 thro原创 2021-11-15 10:13:40 · 534 阅读 · 0 评论 -
NodeJs 自定义 node_cache、node_global 目录
node_cache 存放的是 npm 下载时的缓存文件node_global 存放的是 npm install -g 全局安装的指令模块自定两处目录位置npm config set prefix “D:\nodejs\node_global”npm config set cache “D:\nodejs\node_cache”注意:node_global 目录位置需要添加到环境变量 path 中,这样才能使用全局的 npm 命令其他问题处理:自定义目录后 npm install 时.原创 2021-07-15 10:30:12 · 2810 阅读 · 0 评论 -
PM2 负载均衡
const http = require('http');const server = http.createServer((req, res) => { console.log("url", req.url); res.writeHead(200, {'Content-Type': 'text/pain; Charset=utf-8'}); const pid = process.pid; res.end(`看看用哪个${pid}`);});server.li原创 2021-07-12 17:57:38 · 726 阅读 · 0 评论 -
axios 下载文件流
const axios = require('axios');const fs = require('fs');// axios.get('https://www.rejetto.com/hfs/hfs.exe')// .then((data) => {// fs.writeFileSync('./hfs.exe', data);// }).catch(console.log);axios({ method: 'get', url: 'https://www.rejetto原创 2021-07-12 11:37:59 · 503 阅读 · 0 评论 -
更改 npm 全局 node_module目录
设置npm安装程序时的默认位置npm config set prefix “D:\nodejs\node_global”设置npm安装程序时的缓存位置npm config set cache “D:\nodejs\node_cache”把 D:\nodejs\node_global 加到 window s系统 PATH 下原创 2021-06-30 10:22:23 · 2131 阅读 · 0 评论 -
nodejs 下载 APK 类型文件
nodejs 下载 APK 文件返回头设置// 需要下载的 APK 文件, 可以边读取边下载节约服务器内存const apkbuffer = fs.readFileSync('./app-release.apk');// 设置 APK 文件大小,这样客户端可以获取到,从而显示下载进度res.setHeader("Content-Length", apkbuffer.length);// 下载 APK 文件所必须的 文件类型 设置res.setHeader("Content-Type", "app原创 2021-06-30 09:53:02 · 687 阅读 · 0 评论 -
xlsx导出excel, 并且通过 xlsx-style 添加样式
const xlsxStyle = require("xlsx-style");const xlsx = require('xlsx');const wb = xlsx.utils.book_new();var ws_name = "SheetJS";/* make worksheet */var ws_data = [ [ "S", "h", "e", "e\ntest", "tteststesateafwefewffw", "J", "S" ], [ 1 , 2 , 3 ,原创 2021-05-31 11:18:15 · 1058 阅读 · 0 评论 -
Sails.js model 相关
1、命令生成 model sails generate model Test2、model支持的基本数据类型 http://www.cnblogs.com/lori/p/4881650.html3、model 字段添加正则验证/*验证参考:http://sailsjs.com/documentation/concepts/models-and-orm/validations*/id:原创 2017-09-12 13:56:08 · 557 阅读 · 0 评论 -
sails框架配置相关
1.禁用 session .sailsrc 添加 “hooks”: { “session”: false } 2.模板引擎修改 ejs -> html ①. view.js engine: { name:’ejs’, ext:’html’ } ②. layout.ejs 修改为 layout.html3. 去除原创 2017-07-28 11:06:51 · 726 阅读 · 0 评论 -
使用 nodejs electron 开发桌面应用
electron 官网:http://www.electronjs.org/docs/tutorial/quick-start1. 安装 electron 环境// 设置 electron 仓库地址为淘宝镜像(重要,否则可能安装失败)npm config set electron_mirror “https://npm.taobao.org/mirrors/electron/”npm i --save-dev electron// electron 打包, package.json .原创 2021-03-17 11:24:44 · 848 阅读 · 0 评论 -
nodejs 加密压缩文件,解密解压文件
话不多说,直接上代码// archiver, archiver-zip-encryptedconst archiver = require('archiver');const fs = require('fs');const output = fs.createWriteStream(__dirname + '/test.zip');archiver.registerFormat('zip-encrypted', require('archiver-zip-encrypted'));const原创 2021-02-26 10:28:03 · 1427 阅读 · 0 评论 -
nodejs 使用 nodemailer 来发送邮件
nodemailer 网址: https://nodemailer.com/about/const nodemailer = require('nodemailer');const fs = require('fs');async function main() { let transporter = nodemailer.createTransport({ host: 'smtp.test.com', // 邮件服务器 port: 587, secure: fals.原创 2021-02-24 14:19:43 · 151 阅读 · 0 评论 -
NodeJS 生成文件校验码 checksum (md5, sha1, sha256, sha512)
生成文件的校验码,验证文件的安全性和完整性代码:const crypto = require('crypto');const fs = require('fs');const fsStream = fs.createReadStream('./json-20201115.jar');const algo = 'md5'; // md5, sha1, sha256, sha512const fHash = crypto.createHash(algo);fsStream.on('data原创 2021-02-01 15:23:29 · 1558 阅读 · 1 评论 -
字母序列号生成 A...Z..AA..ZZ....
A…Z…AA…ZZ… 字母序列生成与转换代码:'use strict';/** * A...Z..AA..ZZ.. 序列号生成与转换 */class VersionTool { /** * constructor */ constructor() { this.baseLetter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; } /** * 数字序列转字母序列 * 分析:ZZ * 达到 ZZ 需要 26*26, 两次循原创 2020-12-08 15:52:33 · 2080 阅读 · 0 评论 -
NodeJs 使用 Protocol Buffer 协议对数据进行序列化处理
Protocol Buffer 是什么Protocol Buffer 是 Google 提供的一种数据序列化协议,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。为何使用 Protocol BufferProtocol Buffer 属于二进制协议,解析处理更快1. 安装 js 包 google-protobufnpm i google-protobuf原创 2020-12-01 17:04:11 · 708 阅读 · 0 评论 -
NodJs 单元测试写法以及将测试报告推送到sonarqube
nodejs 后端单元测试写法示例个人见解: 对于一些复杂的业务逻辑还是应该写单元测试,以确保有将所有的情况考虑清楚1. 安装测试依赖npm i nyc mocha sinon chai -snyc 用于生成各种格式测试报告 官网mocha 整合测试用例,测试的主要框架 官网sinon 用于 mock 实例对象的方法,返回指定的数据 官网chai 测试断言库,对测试结果进行判断 官网2. 代码示例// A.jsclass A { add(a, b) { retur原创 2020-11-25 14:01:37 · 362 阅读 · 0 评论 -
eggjs 获取各种类型请求参数
1. query 参数获取// eg: test?id=1const { id } = this.ctx.query2. path 参数获取// eg: test/:id => test/1const { id } = this.ctx.params;3. body 参数获取const bodyData = this.ctx.request.body;4. header 参数获取const header = this.ctx.header;5. 请求路径获取const原创 2020-11-18 14:29:39 · 1520 阅读 · 0 评论 -
eggjs 中使用 redis + sequelize + postgresql + 自定义中间件 + mongodb
1. 基础项目创建创建项目npm init egg --type=simple运行npm run devhttp://localhost:70012. 使用 egg-redis 操作 redis安装 egg-redisnpm i egg-redis -s使用// 1. 启用 egg-redis// config/plugin.js module.exports = { redis: { enable: true, package: 'egg-redi原创 2020-11-18 11:00:50 · 904 阅读 · 0 评论 -
NodeJS sftp 上传文件
1. 使用 ssh2-sftp-client 上传文件到 sftpnpm i ssh2-sftp-client -s2. 核心代码:// SftpTool const Client = require('ssh2-sftp-client');/** * sftp tool */class SftpTool { /** * {host: ip, port: 22, username: name, password: pwd} * @param {Object} conf原创 2020-09-22 15:49:06 · 2358 阅读 · 0 评论 -
NodeJS ftp 上传文件
采用 ftp 模块上传文件const FtpClient = require('ftp');const fs = require('fs');const client = new FtpClient();const config = { host: '127.0.0.1', port: 21, // user: '', // password: '', keepalive: 10000 // ms}function connect() { return new Pro原创 2020-09-03 15:10:11 · 1463 阅读 · 3 评论 -
NodeJS JWT(json web token) 认证
JWT 是什么?不知道 web service? app service? 认证方式?1、生成 tokenconst jwt = require("jsonwebtoken");//生成 tokenlet content ={msg:"today is a good day"}; // 要生成token的主题信息let secretOrPrivateKey="woleigequa原创 2017-07-31 09:38:56 · 1204 阅读 · 0 评论 -
NodeJS excel 导入(js-xlsx)
js-xlsx github地址:https://github.com/SheetJS/js-xlsx准备 excel文档 解析方法const XLSX = require("xlsx");function importExcel(filePath, callback) { var data = []; var err = null; try { // Ev原创 2017-07-31 10:23:05 · 6269 阅读 · 1 评论 -
NodeJS excel 导出(exceljs)
exceljs : https://github.com/guyonroche/exceljs1、先来个导入excel这里写代码片 解析方法var Excel = require('exceljs');var workbook = new Excel.Workbook();var data = [];workbook.xlsx.readFile('import.xlsx') .the原创 2017-07-31 11:06:00 · 12318 阅读 · 4 评论 -
Nodejs sqlcipher 读取加密的 sqlite3 数据库文件
模块安装 npm install sqlcipher –save通过 sqlcipher 模块操作加密的 sqlite3 数据库 参考: https://github.com/delaballe/node-sqlcipher先说结果,一番操作后然并没有成功解密通过 sqlcipher 加密后的 sqlite3数据库再说原因,请注意 node-sqlcipher 上的最后一段话实际上我们的本原创 2017-11-02 15:23:43 · 4238 阅读 · 0 评论 -
Sailsjs 上传文件(local disk,S3)
nodejs 上传文件还是挺简单的,有着各种中间件,比如 multer你要是用 Sailsjs 框架那就更简单了不多说,上参考 https://github.com/sails101/file-uploads/blob/master/api/controllers/FileController.js#L15喽,看着吧,么了注意点: .upload(option, cb) 方法中 optio原创 2017-11-02 15:46:01 · 1203 阅读 · 0 评论 -
Nodejs crypto模块公钥加密私钥解密探索
1.什么是公钥加密私钥解密 简单一点来说一般加密解密都用的是同一个秘钥或者根本不用,而这里采用的是加密用一个秘钥,解密用另一个秘钥且能解密成功.这就属于不对称加密解密算法的一种了.2.公钥秘钥的生成 由于这种加密方案,公钥秘钥是成对的,所以需要一些工具生成 利用 openssl 生成公钥私钥 生成公钥: openssl genrsa -out rsa_private_key....原创 2018-06-22 17:39:18 · 10320 阅读 · 0 评论 -
http basic auth 实现请求网页时弹出账号密码输入框
http basic auth 是如何实现的 当请求一个url会弹出请输入账号密码即是通过该方式实现的. nodejs代码/** * Created by alex on 18-6-27. *//* https://blog.csdn.net/qq_15783243/article/details/78684423 https://blog.csdn.net/qq_157...原创 2020-12-16 14:07:01 · 1374 阅读 · 0 评论 -
NodeJs 安装配置相关
node 升级npm install -g n //安装 n 模块n stable // 利用 n 命令将 node 升级到稳定版本node -v // 查看 node 版本原创 2018-09-26 10:17:44 · 136 阅读 · 0 评论 -
Knex.js (NodeJS orm 框架)
官网:https://knexjs.org/其他:https://blog.csdn.net/liuyueyi1995/article/details/53782047笔记1.knex.raw 处理特殊字段,根据 json 类型某个值进行排序// training_area : {"city_id": 1, "area_id": 2}//select * from reservation...原创 2018-10-09 14:09:08 · 6886 阅读 · 0 评论