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”);

  1. - 使用http模块发送http请求
  2. ```javascript
  3. const http = require('http');
  4. let responseData = '';
  5. // 发送请求到百度首页上
  6. http.request({'host': 'www.baidu.com', 'port': 80, 'url': '/site.txt', 'method': 'get'}, function (response) {
  7. response.on('data', (chunk) => responseData += chunk);
  8. response.on('end', () => {
  9. console.log(responseData)
  10. })
  11. }).end();

Path模块

使用Path模块主要用于文件路径的分析等等,如分析文件拓展名,文件的所在路径等等.

  1. const path = require('path');
  2. const util = require("util");
  3. // 构建一个完成的文件路径
  4. let pathStr = path.join("/tmp", "myDirectory", "My.json");
  5. console.log(`File path = ${pathStr}`);
  6. // 查询文件的拓展名
  7. let extName = path.extname(pathStr);
  8. console.log(`文件拓展名: ${extName}`);
  9. // 解析字符串形式的文件路径
  10. let pathObj = path.parse(pathStr);
  11. console.log(pathObj);

Query 模块

此模块经常被用来解析形如 k1=v1&k2=v2&k3=v3 的这种字符串格式。

  1. let queryString = require('querystring');
  2. // 解析查询字符串
  3. let queryStrValue = "k1=v1&k2=v2&k3=v3&k4=v4&k5=true";
  4. let parseMap = queryString.parse(queryStrValue);
  5. console.log(parseMap);
  6. // 根据对象生成字符串
  7. let queryObj = {"name": "张三", "age": 1, "isMan": true};
  8. let parseUrl = queryString.stringify(queryObj);
  9. console.log(parseUrl);

URL 模块

此模块用来解析和生成关于URL资源的字符的能力。

  1. const url = require('url');
  2. const utils = require("util");
  3. // 解析字符串
  4. let urlString = "https://www.zhoutao123.com/page/book/1?key1=value1&key2=value2";
  5. let urlObj = url.parse(urlString);
  6. console.log(utils.inspect(urlObj,{'colors':true}));
  7. // 根据给定的对象生成URL字符串
  8. let newUrlString = url.format(urlObj);
  9. console.log(`\n\n新生成的字符串: ${newUrlString}`);

DNS 模块

  1. const dns = require('dns');
  2. dns.resolve('www.zhoutao123.com', function (err, address) {
  3. if (err) {
  4. console.error(err);
  5. return
  6. }
  7. console.log(`解析地址: ${address}`);
  8. });
  9. dns.reverse('114.114.114.114', (err, domain) => {
  10. console.log(`反向解析结果: ${domain}`);
  11. });

FS 模块

  1. const fs = require('fs');
  2. // 同步写入文件
  3. fs.writeFileSync('test.data', "人生自古谁无死", {flag: 'a+'}, function (error, fd) {
  4. if (error) {
  5. console.log(`文件写入失败`)
  6. }
  7. });
  8. // 同步读取文件
  9. let data = fs.readFileSync('test.data');
  10. console.log(`同步读取文件成功:${data}`);
  11. // 异步读取文件
  12. fs.readFile('test.data', (error, data) => {
  13. if (error) {
  14. console.error(`读取文件发生错误:${error}`);
  15. return
  16. }
  17. console.log(`异步读取文件完成:${data}`)
  18. });
  19. // 打开文件
  20. fs.open('test.data', 'r+', (error, fd) => {
  21. if (error) {
  22. console.error(`文件打开失败`);
  23. return;
  24. }
  25. console.log(`打开文件完成`);
  26. fs.close(fd, (err) => {
  27. if (err) {
  28. console.error(`文件关闭失败`)
  29. }
  30. })
  31. });
  32. // 删除文件
  33. fs.unlink('test.data', function (error) {
  34. if (error) {
  35. console.log(`文件删除失败:${error}`)
  36. }
  37. console.log(`文件删除完成`)
  38. });
  39. // 文件重命名 fs.rename(oldPath,newPath,(error)=>{})
  40. // 文件统计 fs.stat(path,(error,stat)=>{})