Node.js——path路径,http,npm与包,模块化

简介: Node.js知识点一、fs(文件系统)二、path(路径)三、http(服务器)四、npm与包五、模块化一、fs(文件系统)(1) 读取指定文件内容fs.readFile(path[,option],callback参数1:字符串,表示文件的路径参数2,表示以什么编码格式读取文件参数3:读取完成后,通过会点函数读取结果(2) 向指定的文件中写入内容fs.writeFile(file,data[,options],callback)参数1:指文件路径的字符串,表示文件的存放路径参数2:表示要写入的内容参数3:表示写入内容的格式,默认值是utf8

一、fs(文件系统)

(1) 读取指定文件内容

fs.readFile(path[,option],callback
  • 参数1:字符串,表示文件的路径
  • 参数2,表示以什么编码格式读取文件
  • 参数3:读取完成后,通过会点函数读取结果

(2) 向指定的文件中写入内容

fs.writeFile(file,data[,options],callback)
  • 参数1:指文件路径的字符串,表示文件的存放路径
  • 参数2:表示要写入的内容
  • 参数3:表示写入内容的格式,默认值是utf8

<hr/>

二、path(路径)

(1)path.join()

用来将多个路径片段拼接成一个完整的路径的字符串

(2)path.basename()

可以从一个文件路径中获取文件的名称

(3)path.extname()

可以获取文件的扩展名

const fpath='a/b/c/index.html' //文件的路径

const fext=path.extname(fpath)
console.log(fext)  //输出.html
注意:若出现路径拼接问题,可以直接提供一个完整的文件存放路径

<hr/>

三、http(服务器)

(1) 创建基本的web服务器

  • 启动服务器
  • req请求对象
  • res响应对象

(2)根据不同的url响应不同的html内容

在这里插入图片描述

const server = http.createServer()         // 创建web服务器
// 监听服务器的request事件
server.on('request', (req, res) => {
    const url = req.url             // 获取客户端的地址
    // 把请求的地址映射为具体文件的存放路径和
    // const fpath = path.join(__dirname, url)
    let fpath=''
    if(url === '/') {  fpath=path.join(__dirname,'')
    } else {  fpath=path.join(__dirname,'',url)
    }
    // 读取文件 显示为客户端
    fs.readFile(fpath, 'utf8', (err, dataStr) => {
         if(err) return res.end('404 Not Found.')   // 失败 
        res.end(dateStr)
    })
})
server.listen(80, () => {
    console.log('server ruuning at http://127.0.0.1');
})           // 启动服务器
解决中文乱码问题

res.setHeader('Content-Type','文件路径',charset='utf-8')

四、npm与包

安装包的命令为 npm i moment
卸载包的命令 npm uninstall moment

(1)包的使用

  • 包必须以单独的目录存在
  • 包的顶级目录下必须包含package.json这个包配置文件
  • package.json中必须包含name(包的名字),version(版本号),main(包的入口)

(2)开发包

需要实现的功能

  • 格式化日期
  • 转义HTML中的特殊字符
  • 将HTML中的符号转为字符
  • 还原HTML中的特殊字符

在这里插入图片描述

(3)把包发布到npm上

将终端切换到包的根目录下 命令为:cd 包名为根目录

运行npm publish命令

<hr/>

五、模块化

模块在第一次加载后就被缓存

(1)内置模块(加载优先级最高)

如果导入时省略了文件的扩展名,则会自动补全

(2)第三方模块的加载机制

如果传递给require()的模块标识符不是内置模块,也没有‘./ ’或 '../ '开头,则nodejs会从当前模块的父目录开始从/node_modules文件夹中加载第三方模块

(3)目录作为模块
在这里插入图片描述

<hr/>

目录
相关文章
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
1076 65
|
JavaScript 前端开发 开发者
Node学习笔记:HTTP模块
总的来说,Node.js的HTTP模块是一个强大的工具,可以帮助你处理HTTP协议的各种需求。无论你是想开设自己的餐厅(创建服务器),还是想去别的餐厅点菜(发出请求),HTTP模块都能满足你的需求。
438 18
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1555 9
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
4001 27
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
634 3
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
JavaScript 算法 前端开发
nodejs18版本 npm run dev失败
在使用若依框架运行 `npm run dev` 时,若卡在 95% 并报错,通常是 Node.js 17+ 与 Webpack 的兼容性问题。原因是 OpenSSL 3 的加密算法变化导致依赖冲突。解决方法:Windows 下运行 `set NODE_OPTIONS=--openssl-legacy-provider`,macOS/Linux 使用 `export NODE_OPTIONS=--openssl-legacy-provider`,然后重新启动开发服务即可。此设置让 Node.js 启用旧版加密支持,恢复正常构建流程。
1601 0
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
2897 5
|
存储 Web App开发 监控
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
我们以前使用过的对hbase和hdfs进行健康检查,及剩余hdfs容量告警,简单易用 1.针对hadoop2的脚本: #/bin/bashbin=`dirname $0`bin=`cd $bin;pwd`STATE_OK=...
1272 0
|
SQL Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
在运行一个group by的sql时,抛出以下错误信息: Task with the most failures(4):  -----Task ID:  task_201411191723_723592_m_000004URL:  http://DDS0204.
1224 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
947 0

推荐镜像

更多
  • NPM