马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目次
媒介
开篇语
准备工作
ES6导入导出
导入
著名导出
匿名导出
Node概念
Node导入导出
导入
著名导出
匿名导出
Node常用模块
path模块
和路径有关的全局变量
常见方法
导入方法
fs模块
常见方法
导入方法
竣事语
媒介
开篇语
本系列博客紧张分享JavaScript的进阶语法知识,当前为Node.js部门第一期。
本期内容为:ES6导入导出,Node的概念、导入导出以及常见模块。
与根本部门的语法相比,ES6的语法举行了一些更加严谨的束缚和优化,因此,在之后利用原生JS时,我们应该只管利用ES6的语法举行代码编写。
准备工作
软件:【参考版本】Visual Studio Code
插件(扩展包):Open in browser, Live Preview, Live Server, Tencent Cloud AI Code Assistant, htmltagwrap
提示:在不纯熟的阶段发起关闭AI助手
体系版本: Win10/11/其他非Windows版本
提示:node.js在当前文件夹下利用cmd运行,不在欣赏器分析运行
ES6导入导出
导入
导入是指,将方法或变量从另一个js文件中以对象的情势引入当前文件。
之前,我们知道引入一个js文件是利用script标签的所在来做的,就像下面如许——
- <script src='./js/jquery.min.js'></script>
复制代码 如果我们必要将必要的变量导入一个js文件,就不能利用这种方式了。
ES6为我们提供了著名导出和匿名导出两种方式——
著名导出
对于著名导出而言,在被导出的文件中,我们找到必要导出的变量或方法,并利用export修饰。
- export const name = "xxxx"
- export const fn = () => {
- console.log("#############");
- }
复制代码 然后,在导入的文件中,利用下面的语法来导入我们必要的内容——
import * as 别名 from "被导入js的路径"
此中*代表全部导出,也可以利用{变量1, 方法1, ……} 如许的情势,仅导出我们必要的内容,这种情况下不必要这个别名。
这里的别名是恣意的,它是一个对象,封装了我们导出的变量、方法等。因此,想要利用导入的内容,我们必要利用该对象名称来调用(第二种导入方式直接利用导入的名称即可)。
- // 方式一
- import * as obj from "./js/a.js"
- console.log(obj.name);
- obj.fn()
- // 方式二
- import {name,fn} from "./js/a.js"
- console.log(name);
- fn()
复制代码 匿名导出
匿名导出的变量或方法没著名称,利用下面的格式导出——
- export default 导出的变量值或匿名方法
复制代码 如果利用匿名导出的方式,则至多只能有一个匿名导出。
在导入时,为匿名导出的内容重新设定一个名字,就像下面如许——
- import myname from "./js/b.js"
- console.log(myname);
复制代码 Node概念
Node.js是一个基于Chrome V8引擎的JavaScript情况。
欣赏器是JS运行的前端情况,而Node.js是JS运行的后端情况。
通常来说,在控制台利用Node + JS文件名运利用用Node语法的JS文件,此处的文件名可以省略.js后缀。
留意,Node.js无法调用DOM和BOM元素,由于无法获取到document和window,如果在代码中出现了这两个节点,将会提示未界说的错误。
Node导入导出
导入
Node利用require举行导入,参数为导入的js库或文件。
由于Node导入的内容均为js文件,以是可以省略.js后缀。
导入的文件将会立刻实验,具有缓存。如果重复导入多次,则只实验一次。
著名导出
Node利用exports.名字的方式来举行著名导出,就像下面如许——
- exports.name = "####"
- exports.fn = () => {
- console.log("我是一个函数..");
- }
复制代码 require()返回一个对象,该对象具有导出的全部内容,因此直接利用一个变量来接导出内容即可。
- const obj = require("./js/d")
复制代码 大概利用一个对象,来接详细必要导出的内容,此时就不必要利用对象名.xxx如许的情势调用了。
- const {name,fn} = require("./js/d")
复制代码 导出内容的利用方式同ES6。
匿名导出
Node利用module.exports = 导出内容的方式来举行匿名导出,就像下面如许——
- module.exports = {
- name:"小明",
- say() {
- console.log("xxxx在说话....");
- }
- }
复制代码 同样的,module.exports也只能有一个,否则只生存末了一次匿名导出的内容。
利用方式和著名导出雷同。
Node常用模块
path模块
和路径有关的全局变量
Node有两个和路径干系的常用的全局变量——
变量名寄义__dirname当前文件的父文件夹的绝对路径__filename当前文件的绝对路径常见方法
path常用的方法有下面五种——
方法和参数作用 path.basename(yourpath[, suffix])
获取文件名称,如a.txtpath.dirname(yourpath)获取文件的父级目次path.extname(yourpath)获取文件的后缀名(范例,如.txt)path.resolve([...paths])路径拼接操纵path.normalize(path)路径改正操纵这里的yourpath为__filename。
留意,如果利用base(yourpath, 文件后缀名),可以返回没有后缀名的文件名。
对于resolve(),我们常用它来获取同一父级下其他文件,比如:
- const url = resolve(__dirname,"js","a.js")
复制代码 对于normalize(),如果路径中有多余的 / 或 \,将主动被去除。
导入方法
我们可以利用require一次性导入上述的方法——
- const {basename,dirname,extname,resolve,normalize} = require("path")
复制代码 不要忘记导入拼接路径的方法——
- const { resolve } = require("path")
复制代码 fs模块
常见方法
fs模块用于文件的读写操纵,常见的方法有下面这些——
方法和参数作用writeFile(yourpath, data)覆盖写(异步),覆盖上一次写入的内容writeFileSync()覆盖写(同步)appendFile(yourpath, data) 追加写(异步),在上一次写入的内容后写入
可以利用\r\n为新写入的内容添加换行
appendFileSync()追加写(同步)readFileSync(yourpath, charset)读取(同步)existsSync(yourpath)判断文件是否存在(同步)unlinkSync(yourpath)删除文件我们常将writeFile(),appendFile()和readFileSync()放在try-catch语句中,并在catch语句中捕捉错误err。
导入方法
我们可以利用require一次性导入上述的方法——
- const { writeFile, writeFileSync, appendFile, appendFileSync,
- readFile, readFileSync, existsSync, unlinkSync } = require("fs")
复制代码 竣事语
本期内容到此竣事。关于本系列的其他博客,可以查察我的JS进阶专栏。
在全栈范畴,博主也只不外是一个平凡的萌新而已。本系列的博客紧张是记载一下自己学习的一些履历,然后把自己意会到的一些东西总结一下,分享给各人。
文章全篇的操纵过程都是笔者切身操纵完成的,一些界说性的笔墨加入了笔者自己的很多明白在内里,以是仅供参考。如果有说的不对的地方,还请体谅。
==等待与你在下一期博客中再次相遇==
——临期的【H2O2】
|