![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
node
qq_37837908
这个作者很懒,什么都没留下…
展开
-
dns(域名解析)
域名解析: dns.lookup("host", (err,ip地址,网际协议版本)=>{}); 说明:得到域名对应的ipv4或ipv6地址,优先获取host的本地ip。比如在hosts文件里配置了如下规则:127.0.0.1 baidu.comconst dns = require('dns');dns.lookup('baidu.com', (err, ip, fam...原创 2019-03-25 16:04:08 · 480 阅读 · 0 评论 -
web开发
用户登录模块:浏览器输入网址; 服务器端:先判断请求中是否存在session.user;如果存在:服务器端渲染,将用户名一并渲染在页面,并在响应中添加cookies的'login=1';如果不存在:在响应中添加cookies的'login=0';浏览器端js解析document.cookie,拿到login的值,为1则隐藏登录模块,为0则显示登录模块。...原创 2019-04-09 16:51:22 · 125 阅读 · 0 评论 -
crypto(加密、签名)
哈希算法签名:(MD5或SHA1、sha256、sha512)const crypto = require('crypto');let hash = crypto.createHash('md5'); //创建hash对象// 可任意多次调用update();hash.update('abcd'); //添加数据hash.update('efg'); //添加数...原创 2019-03-28 22:25:06 · 2020 阅读 · 0 评论 -
打印对象的所有函数名(包括原型链上的函数)
function getFnNames(obj){ if(!obj) return; //打印对象(本身和原型链上)所有函数的名字,包括不可枚举的 Object.getOwnPropertyNames(obj).forEach((key,index)=>{ let type = Object.prototype.toString.call(obj[...原创 2019-04-07 10:47:23 · 1035 阅读 · 0 评论 -
获取变量类型
function getType(v){ let type = Object.prototype.toString.call(v); let arr = type.split(" "); let str = arr[1].slice(0,-1); return str;}let time = new Date();console.log(getType(...原创 2019-03-28 00:14:31 · 367 阅读 · 0 评论 -
url
将URL字符串解析为URL 对象:const url = require('url');url.parse('https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1',true);/*{ protocol: 'https:', slashes: true, auth: null, host: 'www.baidu.c...原创 2019-03-27 19:07:48 · 130 阅读 · 0 评论 -
path(路径)
POSIX 和 Windows的路径区别:路径:D:\demo\abc\a.jswindows的路径:D:\\demo\\abc\\a.jsPOSIX的路径:/demo/abc/a.js返回路径中的文件名(含后缀):const path = require('path');path.basename('C:\\temp\\myfile.html'); //结果是:在...原创 2019-03-27 18:47:23 · 778 阅读 · 0 评论 -
readline(逐行读取)
逐行读取文件:const readline = require('readline');const fs = require('fs');let readStream = fs.createReadStream('a.txt');let rl = readline.createInterface({ input: readStream});//每读取一行触发函数rl.o...原创 2019-03-27 17:10:02 · 12563 阅读 · 0 评论 -
Buffer(缓冲器)和string_decoder(字符串解码器)
缓冲器是什么?储存字节的容器,buffer每个下标就是一个字节。创建缓冲器:let bf1 = Buffer.from("我是utf8字符串","utf8"); //用utf8解析字符串,变成字节,存进缓冲器let bf2 = Buffer.from("e4bda0","hex"); //用16进制解析"16进制字符串",存进缓冲器let bf3 = Buffer.fr...原创 2019-03-24 17:41:34 · 696 阅读 · 0 评论 -
字符编码:ASCII,Unicode 和 UTF-8的区别
转载:阮一峰一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二...转载 2019-03-24 16:08:42 · 78 阅读 · 0 评论 -
assert(断言)
主要用于测试,达不到预期时抛出错误: assert(value[, message]); 参数说明:assert( 表达式, "错误时的提示" ); 说明:表达式返回true,即达预期var assert = require('assert');function add (a, b) { return a + b;}var expect = add(1, 2);...原创 2019-03-24 14:02:51 · 511 阅读 · 0 评论 -
Stream(流)
可读流:Readableconst fs = require('fs');let data = Buffer.alloc(0);let readable = fs.createReadStream('a.text',{highWaterMark:64*1024});//{highWaterMark:64*1024}表示每次触发data事件读取的数据块不得超过64kbreadab...原创 2019-03-26 22:31:25 · 140 阅读 · 0 评论 -
fs(文件系统——目录操作)
创建目录:const fs = require('fs');fs.mkdir('./abc', err=>{ console.log('在当前目录下创建abc目录');});//递归创建目录fs.mkdir('./abc/a/b/c/d', {recursive:true}, err=>{ console.log('在当前目录下创建abc目录,abc目...原创 2019-03-26 02:26:32 · 1648 阅读 · 0 评论 -
fs(文件系统——文件操作)
读取文件:const fs = require("fs");// 异步读取fs.readFile('a.js', function (err, data) { console.log(data.toString());});// 同步读取let data = fs.readFileSync('a.js');console.log(data.toString());写...原创 2019-03-25 18:49:39 · 3558 阅读 · 0 评论 -
浏览器缓存机制
强制缓存:Cache-Control用户首次请求服务器,如果服务器端设置了响应头Cache-Control,如:ctx.set("Cache-Control","max-age=60*60*24");//表示让浏览器缓存本次请求的静态文件,24小时内有效下次再请求这个静态文件时,不必请求服务器,直接从浏览器的缓存中获取该静态文件。对比缓存:Etag/If-None-Mat...原创 2019-04-09 19:07:14 · 166 阅读 · 0 评论