NodeJS
Rand Tsui
东方欲晓,莫道君行早。
展开
-
【NodeJS】Events 模块
const EventEmitter = require('events');const ee = new EventEmitter();ee.on('eventname', (a, b) => { console.log(a, b); // 1 r ee.removeAllListeners(['eventname']);});ee.emit('eventname', 1, 'r');原创 2021-09-26 10:30:06 · 182 阅读 · 0 评论 -
【NodeJS】读文件 readFileSync
注:如果要读的文件是一个符号链接,那么它会将符号链接指向的文件内容读出来,符号链接也照读不误。const fs = require('fs');let cert = fs.readFileSync('./fullchain1.pem', 'base64');let key = fs.readFileSync('./privkey1.pem', 'utf8');// let b64 = cert.toString('base64');let res = encodeURIComponent(原创 2021-09-16 14:10:09 · 2503 阅读 · 0 评论 -
【NodeJS】【pm2】加参数运行
node index.js arg1 arg2pm2 start index.js -- arg1 arg2上面两个等价获取参数process.argv返回一个数组如下:[ '/usr/bin/node', '/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js', 'arg1', 'arg2']原创 2021-05-22 19:49:28 · 1898 阅读 · 0 评论 -
任意Base编码的实现NodeJS
本程序参考开源项目:https://github.com/cryptocoinjs/base-x本程序还没有完全写完BaseN:let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';let len = chars.length;let charCodeMap = Buffer.alloc(256);for (let i = 0; i < len; i++) { charC原创 2021-05-08 11:20:32 · 285 阅读 · 0 评论 -
【NodeJS】CommonJS原理
(function(modules) { var installedModules = {}; function __webpack_require__(moduleId) { if(installedModules[moduleId]) { return installedModules[moduleId].exports; } var module = installedModules[moduleId] = {.原创 2021-04-28 17:18:14 · 161 阅读 · 0 评论 -
【npm】创建私有npm包,使用Verdaccio
创建私有npm包1、npm官网可以创建私有npm包,但是要收费,每人每月7$,先找免费的2、在线的免费的有GitHub,可以看文章:https://andreybleme.com/2020-05-31/hosting-private-npm-packages-for-free/3、自己本地搭建仓库,可以使用开源项目verdaccio,这个项目的前身是sinopia,前身已经不维护了,verdaccio 地址:https://github.com/verdaccio/verdaccio4、..原创 2021-04-28 11:42:57 · 882 阅读 · 0 评论 -
【NodeJS】最小服务器
const http = require('http');const fs = require('fs');http.createServer((req, res) => { let url = req.url; console.log(url); switch (req.method){ case 'GET': if(url === '/'){ let html = fs.readFileS.原创 2021-04-27 20:15:37 · 218 阅读 · 0 评论 -
静态文件缓存控制
固定时间返回头给Cache-Control 字段一个固定时间(注:优势就是从本地读不需要时间,劣势就是文件修改得不到及时更新)文件变化返回头给Cache-Control 字段设置 no-cache返回头给Last-Modified 字段设置当前文件的修改时间 (注:读取文件的上次修改时间也是需要时间的,但是流量减少)当浏览器再次请求时会自动带if-modified...原创 2019-07-13 22:51:16 · 300 阅读 · 0 评论 -
【NodeJS】与服务端建立tcp连接
const net = require('net');const client = net.createConnection({ port: 80 }, () => { // 'connect' listener console.log('connected to server!'); client.write('world!\r\n');});client.on('data', (data) => { console.log(data.toString(.原创 2021-04-25 21:04:24 · 622 阅读 · 0 评论 -
【NodeJS】设置 cookie
主要使用setHeader方法,第一个参数,返回头的名称,Set-Cookie,第二个参数可以是字符串也可以是字符串数组,什么区别:1、如果使用字符串,那么代表只设置一条cookie,在浏览器返回头中可以看到1个 Set-Cookie 行2、如果使用数组,那么数组里的每个字符串都代表一条cookie,在浏览器返回头中可以看到多个Set-Cookie 行一条cookie的格式应该是下面这个样子的字符串:name=value; name2=value2; name3=value3; Do..原创 2021-04-24 23:31:07 · 1092 阅读 · 0 评论 -
【NodeJS】调试
https://github.com/Jam3/devtool原创 2021-02-08 17:15:16 · 121 阅读 · 0 评论 -
【NodeJS】发送 https 请求
HttpsClient.js 模块const https = require('https');// 不需要 body 的请求const noBodyReqs = ['head','get','copy','purge','unlock'];// 可能需要 body 的请求const hasBodyReqs = ['post','put','patch','delete','op...原创 2019-11-24 21:28:21 · 2496 阅读 · 0 评论 -
【web性能优化】压缩html、css、js,NodeJS工具
工具https://github.com/kangax/html-minifierhttps://github.com/fmarcia/UglifyCSShttps://github.com/mishoo/UglifyJS2使用const fs = require('fs');const minify = require('html-minifier').minify...原创 2019-10-19 22:54:03 · 339 阅读 · 0 评论 -
【MongoDB】连接池设计 NodeJS版
const MongoClient = require('mongodb').MongoClient;function MongoConnectionPool(url){ if(!url){ throw new ReferenceError('url is required!'); return; } let dbs = []; ...原创 2019-07-20 19:04:02 · 1326 阅读 · 0 评论 -
【NodeJS】写文件,添加行
const fs = require('fs')fs.appendFile('log.txt', 'aaa' + '\n',err=>function () {}); // 注意,function是必须的原创 2019-08-04 15:25:42 · 1490 阅读 · 0 评论 -
【NodeJS】获取客户端ip
参考:https://blog.csdn.net/u012299002/article/details/51775684const getClientIp = function(req) { let ip = req.headers['x-forwarded-for'] || req.ip || req.connection.remoteAddress...原创 2019-08-04 15:37:06 · 1903 阅读 · 0 评论 -
【NodeJS】设定post数据限制
req.on('data', chunk => { chunks = Buffer.concat([chunks,chunk],chunksLength + chunk.length); chunksLength = chunks.length; if(chunksLength>cfg.maxPostSize){ req.pause(); ...原创 2019-08-04 17:30:06 · 1447 阅读 · 0 评论 -
【NodeJS】request处理总结篇
1、post 进来的数据是 Buffer 类型,Buffer 一定可以 toString,结果是 ASCII 、乱码、json字符串、querystring2、querystring.parse() 是安全的,它仅根据 & 和 = 两个符号切割3、JSON.parse() 是不安全的,参数格式不对会抛异常,需要加 try catch4、post 进来的数据的 Content-...原创 2019-08-05 17:28:37 · 1135 阅读 · 0 评论 -
【NodeJS】Ubuntu 安装某个版本的 NodeJS
https://github.com/nodesource/distributions/blob/master/README.md原创 2019-10-06 15:09:18 · 186 阅读 · 0 评论 -
Node版本管理工具 nvm 的使用总结
nvm下载地址https://github.com/coreybutler/nvm-windows/releases原创 2019-06-17 14:47:48 · 152 阅读 · 0 评论