一、node.js内置模块
-
crypto
作用:加密模块。提供了多种加密方法,如对用户密码加密后存储到数据库时使用。
使用://加密模块 const crypto = require('crypto'); const KEY = "dancy" + 5201314; //每一个密码读增加一个5201314,增加密码复杂度 //console.log(crypto.getHashes()); //获取哈希加密的方式 const obj = crypto.createHash('md5'); obj.update(KEY); const password = obj.digest("hex"); // 采用十六进制的方式(hex)输出加密的结果,只能输出一次 console.log(password);
-
path
作用:路径模块,提供多种路径处理模块,常用到其中的join方法拼接路径。
使用:const Koa = require('koa'); const cors = require('@koa/cors'); //解决跨域模块 const static = require('koa-static'); //静态资源处理模块 const router = require("./router"); const koaBody = require('koa-body'); //处理post请求数据 const { join } = require('path'); const app = new Koa(); app.use(cors()); app.use(static(join(__dirname, 'static'))); // 静态资源中间件最好放在路由注册之前 app.use(koaBody()); app .use(router.routes()) .use(router.allowedMethods()) .listen(3000);
-
fs
作用:文件系统,提供多个文件操作api。
爬虫案例:const Koa = require('koa'); const cheerio = require('cheerio'); const request = require('superagent'); const fs = require('fs'); const { join } = require('path'); const app = new Koa(); const name = 'echarts'; request .get('https://www.bootcdn.cn/' + name) .end((err, res) => { const $ = cheerio.load(res.text); let data = []; fs.mkdirSync("files/" + name); $(".package-version").each((index, val) => { let obj = { version: $(val).prev().text().slice(3), links: [] } $(val).find(".list-group-item>span").each((i, v) => { let link = $(v).text(); obj.links.push(link); //if(link == "https://cdn.bootcss.com/jquery/3.3.0/jquery.js") { fs.mkdir("files/" + name + "/" + obj.version, "0o777", (err)=>{ request .get(link) .buffer(true) // application/x-javascript类文件需要添加 .end((err, res) => { if(res) { fs.writeFile(join(__dirname + "/files/" + name + "/", obj.version + link.slice(link.lastIndexOf("/"))), res.text, (err) => { if (err) throw err; }); } }) }); //} }) data.push(obj) }); app.use( async (ctx, next) => { ctx.body = JSON.stringify(data); }); }); app.listen(3000);
-
stream
作用:流模块,常用语文件读写。
使用:const fs = require('fs'); const Readable = require('stream').Readable; const read = fs.createReadStream('1.txt'); //创建一个可读流,默认二进制 const write = fs.createWriteStream("2.txt"); //创建一个可写流 const writeR = fs.createWriteStream("3.txt"); read.pipe(write); // 将1.txt的内容通过管道复制到2.txt //read.setEncoding("utf8"); //read.resume(); //释放数据,让数据流动起来,但无法接收数据 //let res = ""; //read.on("data", data => { //释放数据,并可以接收数据 // res += data //}) // //read.on("end", () => { // console.log("读取结束"); //}) const rs = new Readable; rs.setEncoding("utf8"); rs.push("1"); rs.push("2"); rs.push(null); rs.pipe(writeR);
-
assert
作用:断言模块
使用:const assert = require('assert'); //assert.ok(0, '如果前面第一个参数的布尔值不为true,则显示这里的报错信息'); //assert.equal(0.1+0.2, 0.3, '如果前面第一个参数不等于第二个参数,则显示这里的报错信息'); // 内部使用的是等于 == //assert.equal(1+2, true, '如果前面第一个参数不等于第二个参数,则显示这里的报错信息'); // 有数字参与的一般会转为数字 true会被转为1 /** * assert.strictEqual() 内部使用的是严格等于 === * assert.notStrictEqual() 内部使用的是 !== * assert.deepEqual() 用于判断对象,只要两个对象的属性一一对应同时值相等则相等 值比较时使用的是 == * assert.deepStrictEqual() 值比较时使用的是 === */ try { assert.nodeDeepEqual({a: '1'}, {a: 1}, '报错信息'); } catch (error) { console.log(1) }
-
http
作用:创建node.js服务器,一般使用koa、express等框架搭建,使用node.js原生http模块的较少。
使用:const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"}); /** res.writeHead设置响应头 * params * 200: 状态码 * obj: 响应头参数 */ //res.setHeader("Access-Control-Allow-Origin", "*") 设置允许跨域 if(req.url === "favicon.ico") return; //res.write('向客户端返回数据'); res.end(JSON.stringify(req.headers)); // 声明响应结束,参数只能传字符串 }) server.listen(3000);
更多nodejs模块请参考 node.js中文网
二、第三方模块
- koa-router
作用:监听路由,编写接口时使用
安装:npm i -S koa-router
npm: https://www.npmjs.com/package/koa-router - koa-static
作用:前端静态文件、图片等静态资源处理模块。配置静态资源目录后,将不会出现静态资源not found错误。
安装:npm i -S koa-static
npm:https://www.npmjs.com/package/koa-static - koa-body
作用:处理post请求数据,也提供了文件上传功能。
安装:npm i -S koa-body
npm:https://www.npmjs.com/package/koa-body - koa-views
作用:模板引擎解析,如使用pug模板或其他模板引擎时,则需要此模块配置视图模板。
安装:npm i -S koa-views
npm:https://www.npmjs.com/package/koa-views - koa-session
作用:登录状态验证。当我们实现了用户登录注册时,某些功能需要确认用户的登录状态才能继续操作,此时则需要运用到此模块。
npm:https://www.npmjs.com/package/koa-session - koa-logger
作用:日志模块
安装:npm i -S koa-logger
npm:https://www.npmjs.com/package/koa-logger - koa-multer
作用:文件上传模块
安装:npm i -S koa-multer
npm:https://www.npmjs.com/package/koa-multer - cheerio
作用:筛选网页信息,写网络爬虫时常用。api和jquery类似
安装:npm i -S cheerio
npm:https://www.npmjs.com/package/cheerio - superagent
作用:获取网页内容,通过node.js发送请求时使用, 写网络爬虫时常用。
安装:npm i -S superagent
npm:https://www.npmjs.com/package/superagent - mongoose
作用:连接MongoDB数据库、操作MongoDB数据库时使用。提供了很多MongoDB数据库相关api。
安装:npm i -S mongoose
官网:https://mongoosejs.com/docs/index.html - @koa/cors
作用:解决跨域问题。
安装:npm i -S @koa/cors
npm:https://www.npmjs.com/package/@koa/cors - koa-compress
作用:资源压缩模块,提高传输效率。
安装:npm i -S koa-compress
npm:https://www.npmjs.com/package/koa-compress