在nodejs中,可以通过exports或module.exports 和 require 实现模块化
exports 和 module.exports的区别?
exports曝光内容必须添加属性
module.exports曝光内容,可以添加属性,也可不添加属性
我们可写一些文件,让这些js文件完成一些功能,然后曝光,为了方便程序员的开发,node.js官方写了一些模块,供我们使用,这些模块就叫做 ------- 核心模块
核心模块: node官方写的一些功能,通过module.exports或exports曝光【导出】 供我们使用
Path
path: Path是核心模块,我们可以通过require直接引用
----parse: 解析路径用的
----extname: 可以直接打印文件的扩展名
----basename: 直接打印文件的名字
---dirname: 直接打印文件路径 ===_ _ dirname
----isAbsolute: 判断当前路径是否是绝对路径
---*join : 合并路径
Fs
Fs - file system 文件系统: 在nodejs中用于操作文件的核心模块
fs
----writeFileSync: 同步写入文件 writeFile 异步写文件
----readFileSync: 同步读文件 readFile 异步读文件
----appendFileSync: 同步追加文件 appendFile 异步追加文件
----unlinkSync: 同步删除文件 unlink: 异步删除文件
----renameSync: 同步重命名文件也可以改变文件所在位置 renameSync: 异步重命名文件也可以改变文件所在位置
----mkdirSync: 同步创建文件夹 mkdir: 异步创建文件夹
rmdirSync: 同步删除文件夹 rmdir: 异步删除文件夹
events
Events: 事件模块 ------在node.js中对事件的操作
在nodejs中很多任务都是由事件驱动的
因为require(‘events’)后,返回的是function,故不能通过返回值直接调用方法,我们要通过new 实例化出一个
对象,才能调用方法。
EventEmitter 就是event实例化出的对象: new event.EventEmitter
-----addListener: 向程序中添加事件监听器
-----emit: 发射事件
------removeListener: 删除单个事件监听
------removeAllListeners: 删除所有事件监听
addListener: 在nodejs程序中添加一个事件监听器
流 -- stream
在nodejs中流是一个核心模块,返回的是一个函数。
通过new 实例化出来的流有3种:
1.读流
2.写流
3.读写流
使用fs模块创建流
创建读流 fs.createReadStream
创建写流 fs.createWriteStream
Nodejs中的流就跟水流,电流,血流一样的概念,是字节流
字节流 先得有储存字节的地方,流出来才会形成字节流 ----文件中储存的不就都是字节吗
读流
“data” : 当文件中有数据出来时,会触发’data事件
“end”: 当数据结束时,会发送’end’事件
写流
Write(): 向文件中写入相关内容
End(): 写入完毕
Pipe是一个流方法,只能通过流调用,参数也是流
http
http: hyper text transfer protocol 超文本传输协议 核心模块
其余核心模块
已知核心模块:
fs http querystring path events stream
其余核心模块:
os 操作系统模块
----Platform 表示当前使用的操作系统
----arch 当前cpu的架构
-----hostname 表示当前主机的名称
os用于表示早做系统参数的模块
process
----Pid 进程号
----Argv 表示运行node时输入的参数
----全局对象
Procss用于操作进程的核心模块
util
-----Format 以一定的格式显示
-----inspect 层次结构显示对象
Util是node的工具模块,可以让node更好用
net https https
Child_process
-----Fork
----exec
-----spawn
-----execFile
外部模块
require 引入文件用的
exports 曝光导出文件用的
非node.js官方写的模块就叫做外部模块,在node.js中有无数个外部模块
express
是node.js的一个框架,用于提高编码效率(外部模块)
Express模块的使用:
1. 创建package.json文件 Npm init --yes
2. 使用npm install express –save 安装express
3. 创建app.js 编写代码
Require(‘express’) =>express() =>App对象(
1. listen()监听端口号
2. Use() 只要有请求就会执行use中的回调函数
)
通过express.static(‘路径’)设置静态路径
--------app.use(express.static(‘路径’))
Express中res: sendFile()
-----------直接把文件发送到前端,里面的参数必须是绝对路径
Express中res: send()
-----------Res.send() = write() + end()
Express中req: req.query()
------------ get请求提交的内容
Body-parser
Body-parser 得到post请求
1.Npm install body-parser –save
2.在app.js中引入
3.设置body-parser :app.use(bp.urlencoded({extended:false})
4.Req.body.user 得到表单中的内容
模板
Node.js中使用的模板是ejs,也是一个外部模块
1.Npm install ejs –save
2. 引入ejs
3.设置模板 app.set(‘view engine’,’ejs’)
4. 直接通过res.render()方法显示模板
1. 要把.html改成.ejs
2. 创建views文件夹把.ejs文件放到views中
<%= 变量 %> 就代表页面中要变的那个部分
对应于: render()中的第二个参数
路由
请求方法 加上请求路径就是路由
App.get(“/”,function(){}) app.post(“/a”,function(){}) 他们就是路由
在express中有一个Router的方法可以实现路由的模块化
有了express的Router方法以后,就再也不用在app.js中写路由了
网友评论