模块化

作者: 奶瓶SAMA | 来源:发表于2018-04-09 14:34 被阅读0次

在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中写路由了

相关文章

  • ES6学习笔记 II

    模块化 注意:模块化需要放到服务器环境使用模块化: 定义模块化如下 export export const a =...

  • 前端开发——模块化(css模块化开发)

    掌握模块化开发的思想是我们进行模块化开发的基础。他有以下几部分组成: 模块化开发的优势 css模块化 css模块化...

  • Node.js模块化学习

    模块化的基本概念Node.js 中模块化npm与包模块的加载机制 模块化的基本概念 什么是模块化 模块化是指解决一...

  • webpack基础笔记

    webpack基础 1.前端工程化 实际的前端开发: 模块化:(js的模块化,css的模块化,资源的模块化) 组件...

  • 模块化开发

    js模块化开发vue模块化开发

  • Vue前端工程化

    1.模块化的分类 A.浏览器端的模块化 B.服务器端的模块化 C.ES6模块化 小结:推荐使用ES6模块化,因为A...

  • 前端工程化

    1.模块化的分类 A.浏览器端的模块化 B.服务器端的模块化 C.ES6模块化 小结:推荐使用ES6模块化,因为A...

  • vue5

    es6新内容 class 解构赋值 扩展对象 模块化 什么是模块化 模块的作用 怎么实现模块化 模块化的标准 Co...

  • Vue基础教程之-组件核心概念(四)

    一、模块化 1.1 为什么需要模块化 没有模块化的世界:全局变量污染、难以管理的依赖。常见的模块化标准:Commo...

  • vue项目基建

    路由模块化 , 高频全局组件模块化 权限

网友评论

    本文标题:模块化

    本文链接:https://www.haomeiwen.com/subject/qmlihftx.html