【H2O2|全栈】Node.js(1)

[复制链接]
发表于 2025-12-19 08:00:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
媒介
开篇语
准备工作
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标签的所在来做的,就像下面如许——
  1. <script src='./js/jquery.min.js'></script>
复制代码
如果我们必要将必要的变量导入一个js文件,就不能利用这种方式了。
ES6为我们提供了著名导出和匿名导出两种方式——
著名导出

对于著名导出而言,在被导出的文件中,我们找到必要导出的变量或方法,并利用export修饰。 
  1. export const name = "xxxx"
  2. export const fn = () => {
  3.      console.log("#############");
  4. }
复制代码
然后,在导入的文件中,利用下面的语法来导入我们必要的内容——
   import * as 别名 from "被导入js的路径" 
  此中*代表全部导出,也可以利用{变量1, 方法1, ……} 如许的情势,仅导出我们必要的内容,这种情况下不必要这个别名。
这里的别名是恣意的,它是一个对象,封装了我们导出的变量、方法等。因此,想要利用导入的内容,我们必要利用该对象名称来调用(第二种导入方式直接利用导入的名称即可)。
  1. // 方式一
  2. import * as obj from "./js/a.js"
  3. console.log(obj.name);
  4. obj.fn()
  5. // 方式二
  6. import {name,fn} from "./js/a.js"
  7. console.log(name);
  8. fn()
复制代码
匿名导出

匿名导出的变量或方法没著名称,利用下面的格式导出——
  1. export default 导出的变量值或匿名方法
复制代码
如果利用匿名导出的方式,则至多只能有一个匿名导出。 
在导入时,为匿名导出的内容重新设定一个名字,就像下面如许——
  1. import myname from "./js/b.js"
  2. 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库或文件。
  1. require("./js/c")
复制代码
由于Node导入的内容均为js文件,以是可以省略.js后缀。
导入的文件将会立刻实验,具有缓存。如果重复导入多次,则只实验一次。
著名导出

Node利用exports.名字的方式来举行著名导出,就像下面如许——
  1. exports.name = "####"
  2. exports.fn = () => {
  3.     console.log("我是一个函数..");   
  4. }
复制代码
require()返回一个对象,该对象具有导出的全部内容,因此直接利用一个变量来接导出内容即可。
  1. const obj =  require("./js/d")
复制代码
大概利用一个对象,来接详细必要导出的内容,此时就不必要利用对象名.xxx如许的情势调用了。
  1. const {name,fn} =  require("./js/d")
复制代码
导出内容的利用方式同ES6。
匿名导出

Node利用module.exports = 导出内容的方式来举行匿名导出,就像下面如许——
  1. module.exports = {
  2.     name:"小明",
  3.     say() {
  4.          console.log("xxxx在说话....");   
  5.     }
  6. }
复制代码
同样的,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(),我们常用它来获取同一父级下其他文件,比如:
  1. const url = resolve(__dirname,"js","a.js")
复制代码
对于normalize(),如果路径中有多余的 / 或 \,将主动被去除。
导入方法

我们可以利用require一次性导入上述的方法——
  1. const {basename,dirname,extname,resolve,normalize} = require("path")
复制代码
不要忘记导入拼接路径的方法——
  1. 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一次性导入上述的方法——
  1. const { writeFile, writeFileSync, appendFile, appendFileSync,
  2.     readFile, readFileSync, existsSync, unlinkSync } = require("fs")
复制代码
竣事语

本期内容到此竣事。关于本系列的其他博客,可以查察我的JS进阶专栏。
在全栈范畴,博主也只不外是一个平凡的萌新而已。本系列的博客紧张是记载一下自己学习的一些履历,然后把自己意会到的一些东西总结一下,分享给各人。
文章全篇的操纵过程都是笔者切身操纵完成的,一些界说性的笔墨加入了笔者自己的很多明白在内里,以是仅供参考。如果有说的不对的地方,还请体谅。
==等待与你在下一期博客中再次相遇==

——临期的【H2O2】

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表