Node本身自带了非常不错的模块以供我们来使用,这里主要是粗略的使用以下Node常见的模块代码。
Http模块
- 可以使用http模块使用非常简单的代码创建一个HTTP服务器 ```javascript // 导入HTTP模块 let http = require(‘http’);
//创建一个服务器,在回调的函数中,写入响应头以及响应数据 let server = http.createServer((req, res) => { res.writeHead(200, {‘Content-Type’: ‘application/json’}); res.end(‘{“name”:”Threw”}’) });
// 配置服务器监听3001端口 server.listen(3000, ‘localhost’);
// 添加一些event server.on(‘listening’, () => { console.log(“Server listening!”); });
server.on(‘connection’, () => { console.log(“Client is connecting…”) });
server.on(‘close’, () => { console.log(“Service is close”) });
console.log(“Server started on port 3000”);
- 使用http模块发送http请求```javascriptconst http = require('http');let responseData = '';// 发送请求到百度首页上http.request({'host': 'www.baidu.com', 'port': 80, 'url': '/site.txt', 'method': 'get'}, function (response) {response.on('data', (chunk) => responseData += chunk);response.on('end', () => {console.log(responseData)})}).end();
Path模块
使用Path模块主要用于文件路径的分析等等,如分析文件拓展名,文件的所在路径等等.
const path = require('path');const util = require("util");// 构建一个完成的文件路径let pathStr = path.join("/tmp", "myDirectory", "My.json");console.log(`File path = ${pathStr}`);// 查询文件的拓展名let extName = path.extname(pathStr);console.log(`文件拓展名: ${extName}`);// 解析字符串形式的文件路径let pathObj = path.parse(pathStr);console.log(pathObj);
Query 模块
此模块经常被用来解析形如 k1=v1&k2=v2&k3=v3 的这种字符串格式。
let queryString = require('querystring');// 解析查询字符串let queryStrValue = "k1=v1&k2=v2&k3=v3&k4=v4&k5=true";let parseMap = queryString.parse(queryStrValue);console.log(parseMap);// 根据对象生成字符串let queryObj = {"name": "张三", "age": 1, "isMan": true};let parseUrl = queryString.stringify(queryObj);console.log(parseUrl);
URL 模块
此模块用来解析和生成关于URL资源的字符的能力。
const url = require('url');const utils = require("util");// 解析字符串let urlString = "https://www.zhoutao123.com/page/book/1?key1=value1&key2=value2";let urlObj = url.parse(urlString);console.log(utils.inspect(urlObj,{'colors':true}));// 根据给定的对象生成URL字符串let newUrlString = url.format(urlObj);console.log(`\n\n新生成的字符串: ${newUrlString}`);
DNS 模块
const dns = require('dns');dns.resolve('www.zhoutao123.com', function (err, address) {if (err) {console.error(err);return}console.log(`解析地址: ${address}`);});dns.reverse('114.114.114.114', (err, domain) => {console.log(`反向解析结果: ${domain}`);});
FS 模块
const fs = require('fs');// 同步写入文件fs.writeFileSync('test.data', "人生自古谁无死", {flag: 'a+'}, function (error, fd) {if (error) {console.log(`文件写入失败`)}});// 同步读取文件let data = fs.readFileSync('test.data');console.log(`同步读取文件成功:${data}`);// 异步读取文件fs.readFile('test.data', (error, data) => {if (error) {console.error(`读取文件发生错误:${error}`);return}console.log(`异步读取文件完成:${data}`)});// 打开文件fs.open('test.data', 'r+', (error, fd) => {if (error) {console.error(`文件打开失败`);return;}console.log(`打开文件完成`);fs.close(fd, (err) => {if (err) {console.error(`文件关闭失败`)}})});// 删除文件fs.unlink('test.data', function (error) {if (error) {console.log(`文件删除失败:${error}`)}console.log(`文件删除完成`)});// 文件重命名 fs.rename(oldPath,newPath,(error)=>{})// 文件统计 fs.stat(path,(error,stat)=>{})
