"Node 工具集:实现静态资源服务器的贴心小工具"

版权申诉
0 下载量 93 浏览量 更新于2024-02-25 收藏 145KB PDF 举报
9案例八:[静态资源服务器] - Node 工具集 - path/util/zlib等 本节目标:实现一个静态资源服务器。在Node中,有很多实用的工具模块,包括文件路径处理、URL解析、参数处理、压缩解压等等。在本文中,我们将详细介绍这些工具模块的使用,以实现一个简单的静态资源服务器。 在开始之前,我们先来导入这几个模块,看看它们都提供了哪些实用的工具: ```javascript const path = require('path') // 路径模块 const qs = require('querystring') // 地址参数解析模块 const util = require('util') // 常用工具方法模块 const url = require('url') // URL解析模块 ``` Node默认提供了一些关键的路径信息。当一个代码开始运行的时候,它是在哪个目录下以及从什么位置运行,这些地址信息非常重要。在Node里面所写的任何一个JS模块,它都会被这样的函数包起来: ```javascript (function (exports, require, module, __filename, __dirname) { // 模块的代码在这里 }); ``` 通过使用path模块,我们可以轻松地处理文件路径: ```javascript const newPath = path.join(__dirname, 'static', 'index.html'); console.log(newPath); // 输出当前路径下的static/index.html ``` 而url模块则可以帮助我们解析URL,获取其中的各种信息: ```javascript const parsedUrl = url.parse('http://www.example.com?search=keyword'); console.log(parsedUrl.query); // 输出: search=keyword ``` 对于参数的处理,我们可以使用querystring模块来解析和处理URL地址中的参数: ```javascript const params = qs.parse('name=John&age=30'); console.log(params); // 输出: { name: 'John', age: '30' } ``` 而util模块则提供了一系列常用的工具方法,比如格式化字符串、输出调试信息等: ```javascript util.log('This is a debug message'); ``` 在实际应用中,我们还可以使用zlib模块对数据进行压缩和解压缩,以提高传输速度和节省带宽: ```javascript const zlib = require('zlib'); const input = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi euismod.'; zlib.gzip(input, (err, buffer) => { if (!err) { console.log(buffer.toString('base64')); // 输出压缩后的数据 zlib.gunzip(buffer, (err, data) => { if (!err) { console.log(data.toString()); // 输出解压缩后的数据 } }); } }); ``` 综上所述,Node提供了一系列非常实用的工具模块,它们可以帮助我们更轻松地处理文件路径、解析URL、处理参数、压缩解压数据等等。通过合理地使用这些工具模块,我们可以更高效地构建各种类型的服务器及应用程序。

npm run dev 使用时出现INFO Starting development server... 10% building 2/2 modules 0 activeError: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (D:\vue-element-admin\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (D:\vue-element-admin\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (D:\vue-element-admin\node_modules\webpack\lib\NormalModule.js:471:10) at D:\vue-element-admin\node_modules\webpack\lib\NormalModule.js:503:5 at D:\vue-element-admin\node_modules\webpack\lib\NormalModule.js:358:12 at D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at iterateNormalLoaders (D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:221:10) at D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:236:3 at runSyncOrAsync (D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:130:11) at iterateNormalLoaders (D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:232:2) at Array.<anonymous> (D:\vue-element-admin\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (D:\vue-element-admin\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at D:\vue-element-admin\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 10% building 2/5 modules 3 active ...in\node_modules\eslint-loader\index.js??ref--13-0!D:\vue-element-admin\src\main.jsnode:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen);是怎么回事

2023-07-13 上传