前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模块化

模块化

作者头像
河湾欢儿
发布2018-09-06 17:21:13
1.8K0
发布2018-09-06 17:21:13
举报

在nodejs中,可以通过exports或module.exports 和 require 实现模块化 exports 和 module.exports的区别? exports曝光内容必须添加属性 module.exports曝光内容,可以添加属性,也可不添加属性

我们可写一些文件,让这些js文件完成一些功能,然后曝光,为了方便程序员的开发,node.js官方写了一些模块,供我们使用,这些模块就叫做 ------- 核心模块

核心模块: node官方写的一些功能,通过module.exports或exports曝光【导出】 供我们使用

代码语言:javascript
复制
                      Path
path: Path是核心模块,我们可以通过require直接引用 
----parse: 解析路径用的
----extname: 可以直接打印文件的扩展名 
----basename: 直接打印文件的名字
---dirname:  直接打印文件路径 ===_ _ dirname
----isAbsolute: 判断当前路径是否是绝对路径
---*join :   合并路径
代码语言:javascript
复制
                             Fs
Fs  - file system 文件系统: 在nodejs中用于操作文件的核心模块
  fs
----writeFileSync: 同步写入文件      writeFile 异步写文件
----readFileSync: 同步读文件          readFile  异步读文件
----appendFileSync: 同步追加文件  appendFile  异步追加文件
----unlinkSync: 同步删除文件           unlink: 异步删除文件
----renameSync: 同步重命名文件也可以改变文件所在位置   renameSync: 异步重命名文件也可以改变文件所在位置
----mkdirSync: 同步创建文件夹     mkdir: 异步创建文件夹
rmdirSync: 同步删除文件夹   rmdir: 异步删除文件夹
代码语言:javascript
复制
                                    events
Events:  事件模块 ------在node.js中对事件的操作
在nodejs中很多任务都是由事件驱动的
因为require(‘events’)后,返回的是function,故不能通过返回值直接调用方法,我们要通过new 实例化出一个
对象,才能调用方法。
EventEmitter  就是event实例化出的对象: new event.EventEmitter
-----addListener: 向程序中添加事件监听器
-----emit: 发射事件
------removeListener: 删除单个事件监听
------removeAllListeners: 删除所有事件监听
  addListener: 在nodejs程序中添加一个事件监听器
代码语言:javascript
复制
                  流 -- stream
在nodejs中流是一个核心模块,返回的是一个函数。
通过new 实例化出来的流有3种:
1.读流
2.写流
3.读写流
使用fs模块创建流
创建读流     fs.createReadStream
创建写流      fs.createWriteStream
Nodejs中的流就跟水流,电流,血流一样的概念,是字节流
字节流  先得有储存字节的地方,流出来才会形成字节流 ----文件中储存的不就都是字节吗
读流
“data” : 当文件中有数据出来时,会触发’data事件
“end”: 当数据结束时,会发送’end’事件
写流
Write(): 向文件中写入相关内容
End(): 写入完毕


Pipe是一个流方法,只能通过流调用,参数也是流
代码语言:javascript
复制
                                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中有无数个外部模块
代码语言:javascript
复制
                        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请求提交的内容
代码语言:javascript
复制
                                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 得到表单中的内容
代码语言:javascript
复制
                              模板
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中写路由了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.04.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档