首页 > 其他 > 详细

node--模块化简介,fs模块

时间:2019-08-03 20:19:20      阅读:103      评论:0      收藏:0      [点我收藏+]

常规解析JavaScript:JavaScript文件引入html文件中,浏览器解析,可在控制台打印查看

因为node是直接将V8引擎拿出来解析JavaScript,所以不需要浏览器

在repl中解析JavaScript:

例子1:

技术分享图片

 

1.找到当前文件所在目录

技术分享图片 

2.输入 node  文件名全称

就可以解析JavaScript文件了:

技术分享图片

 

例子2:

直接输入node  文件路径\文件名

技术分享图片

例子3:

在文件所在目录按下shift+鼠标右键

进入命令窗口

 

技术分享图片

 输入 node  文件名

 技术分享图片

 

 注意:window作为浏览器的最大宿主对象,而node 是直接用V8引擎直接解析的,所以没有window对象。

可以用global对象来代替window对象

global.a  = 10  相当于 var a = 10

 

node文档

断言

console.assert(判断,“提示文字”)

判断a的值是否还为0,

值未改变时

技术分享图片

a的值改变了

 技术分享图片

计算代码运行时间:

技术分享图片

 路径:

技术分享图片

 模块化

什么是模块化

在Node中,每个js文件都独立运行在一个闭包中,不是全局的作用域,模块与模块无法互相访问。
目的是:全局变量私有化,避免全局污染,方便管理和维护

 暴露模块exports

可以将一个js文件作为一个模块,然后用exports对象进行导出

因为exports是个对象,所以可以通过打点添加属性或方法,然后赋值导出

1.exports全局的对象

exports使用.语法来向外暴露内部变量 exports.xxx = xxx;

2. module.exports

module.exports既可以通过.语法,也可以直接赋值一个对象

  • module.exports 初始值为一个空对象 {}
  • exports 是指向的 module.exports 的引用
  • require() 返回的是 module.exports 而不是 exports

exports与module.exports的注意

  1. module.exportsexports所指向的内存地址相同
  2. module.exports{}整体导出时会覆盖exports的属性和方法
  3. module.exportsexports通过打点的方式进行添加属性或方法相同时,后面赋值会覆盖前面
  4. exportsmodule.exports同时赋值时,exports所使用的属性和方法必须出现在module.exports,若属性没有在module.exports中定义的话,出现undefined

接受模块require

require:全局函数,用来导入模块的

写法:

var abc = require(‘文件路径/文件名‘)    //全局方法,主要用来导入模块

此时的 abc 为导入的对象。可以通过打点的方式进行

 

注意路径写法:

 “./” 代表当前路径 ,同一文件夹下引入,必须加

“/”  盘符根路径

例子:

 

技术分享图片

 

 

 技术分享图片

fs文件系统模块

在node中,有许多内置模块,需要通过require()引入

使用文件系统,先引入文件系统的模块

 fs模块可以对文件读写

例子

const fs = require("fs");   //fs是内置模块

fs将调用方法来读写文件

fs.readFile(path[, options], callback) //异步读文件

path:文件路径(必需)

option:编码符(可选),当不选时,将以Buffer对象输出

技术分享图片

可以用data.toString()方法转为文件内容的原始值

 

callback:回调函数

err:错误

data:文件的内容

throw:抛出错误,代码不会向下执行

const fs = require(‘fs‘);
fs.readFile(‘./01.html‘,‘utf8‘,(err,data) =>{
    console.log(data)  //当发生错误时,还是会执行到这一行, 输出undefined
//没有错误时,输出文件内容
})

 当发生错误时,用throw 抛出错误,阻止代码继续向下执行

 技术分享图片

fs.readFileSync(path[, options])  //同步读文件

 如何判断读取文件是同步还是异步

const fs = require(‘fs‘);
fs.readFile(‘./01.html‘,‘utf8‘,(err,data) =>{
    if (err) {
        throw err
    }
    console.log(data)    
})
console.log(123)  //用于判断同步异步

当123在文件内容之前输出,则是异步,反之为同步

fs.access(‘path‘,callback)  :判断文件或文件夹是否存在

const fs = require(‘fs‘);  //导入fs模块
fs.access("./01.js",(err) =>{
    if(err) throw err    //如果有错误,抛出错误,停止执行下面代码
    console.log("holly ")  //没有错误,则输出
})

 

 

 

node--模块化简介,fs模块

原文:https://www.cnblogs.com/wxyblog/p/11295702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!