Node-介绍与模块化

Node的介绍

简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

Node模块化

通俗的说,就是在JS文件中,能够使用另一个文件中的变量

1. 模块化的优点

  • 更利于维护
  • 更好的复用性
  • 实现了按需加载文件,减少了不必要的开销
  • 可以让项目变得更加简单
  • 解决了在一个 JS 文件中引入 另一个 JS 文件的变量 的问题

2.模块化的实现

2.1 自定义模块

在这里插入图片描述

在这里插入图片描述
结果:1.js文件共享什么,2.js就会获得什么
在这里插入图片描述

Node中的模块化如何实现?
1.js文件,通过 module.exports = 导出的内容 导出内容
2.js文件,通过 require(’./a’); 导入内容
▲注意:导入模块时必须带路径,即便两个JS文件在同一个目录,也要加 “./”

2.2 内置模块(内置模块有哪些:详见-http://nodejs.cn/api/)
  • 直接使用 require() 加载即可。
  • 加载模块时,无需带路径,比如 require(‘fs’)
  • 加载内置模块,得到对象类型,对象中内置了很多API方法
2.3 常见的内置文件模块总结
2.3.1 fs

1.readFile('文件路径','utf-8', (err, data) => {})读取文件里面的内容(异步方法)
在这里插入图片描述
结果:
在这里插入图片描述
2.fs.writeFile('文件路径', '写入的内容', err => {})往文件里面添加内容(异步方法)
特点:

  • 如果文件不存在,则会创建文件(但不能递归创建)
  • 如果文件中有内容,将会被覆盖
    在这里插入图片描述
    结果:
    在这里插入图片描述

3.access('文件路径', 选填, err => {})判断文件是否存在(是否可读、是否可写)(异步方法)
参数选择:
fs.constants.F_OK或不填,表示判断文件是否存在;
fs.constants.R_OK表示判断文件是否可读;
fs.constants.W_OK表示文件是否可写

在这里插入图片描述

2.3.2 path

1.path.extname('文件路径');获取路径中的后缀

在这里插入图片描述
结果:
在这里插入图片描述

2.path.join('路径', '路径', ……);拼接路径

Node中,有一个全局变量 __dirname ,它表示当前 JS 文件所在的绝对路径
在这里插入图片描述
结果:
在这里插入图片描述

2.3.3 querystring

1.querystring.parse() 将查询字符串转换成JS对象
在这里插入图片描述
结果:
在这里插入图片描述

注意:
因为node.js的url.parse方法采用的传统的urlObject,不符合URL现存标准-WHATWG URL API,因此弃用了

2.querystring.stringify() 将JS对象 转成 查询字符串
在这里插入图片描述
在这里插入图片描述

2.3.4 http

可以搭建web服务器,可以向其他服务器发送http请求

搭建web服务器的步骤
①:加载http模块

   const http = require('http');

②:创建 server 对象

     const server = http.createServer();

③:注册 request 事件-用于处理客户端的请求;

  server.on('request', (req, res) => {
             res.statusCode = 200; 可以设置响应状态码
             res.setHeader('Content-Type', 'text/plain; charset=utf-8');
             res.end('hello wolrd!');
         })

④:指定端口,启动服务

         server.listen(4000, () => console.log('服务器启动了'))
2.4 第三方模块

第三方模块,都是在node核心模块的基础之上,封装了一下,实现了很多非常方便快速简洁的方法。和使用内置模块一样,需要使用 require 加载模块

2.4.1 本地模块
初始化:
npm init -y
npm init

注意事项:

  • package name 默认使用当前文件夹 当做 包的名字
  • package name 不能有中文
  • package name 不能有特殊符号
  • package name 不能和需要安装的第三方模块同名
下载安装第三方模块:
# 正常的下载安装
npm install 模块名

# 简写install为i
npm i 模块名

# 一次性安装多个模块
npm i 模块名 模块名 模块名
卸载第三方模块:
npm uninstall 模块名
npm un 模块名
npm un 模块名 模块名 模块名
2.4.2 全局模块

在任何文件夹都能用

与本地模块的差别:

  • 全局安装的模块,不能通过 require() 加载使用。
  • 全局安装的模块,一般都是命令或者工具。

安装与卸载语句

安装卸载命令

  • 安装命令(多一个 -g

    npm i 模块名 -g
    # 或
    npm i -g 模块名
    
    ### mac 系统如果安装不上,使用下面的命令提高权限
    sudo npm i -g 模块名
    
  • 卸载命令(也是多一个 -g

    npm un 模块名 -g
    
  • 全局安装的模块,在系统盘(C盘)

    • 通过命令 npm root -g 可以查看全局安装路径
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值