Node.js

Node.js基础 + 内置(核心)模块

1.Node.js的定义:

  • Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境

2.名词解释

  • chrome V8引擎: 在chrome浏览器用来解析和执行js代码的工具;
  • 运行时:理解为一个容器,用来运行代码的环境;这个环境让JS有读写文件,操作数据库,开启web服务器等能力
  • 注意:Node.js 只是JS的服务端运行环境,不是一门语言(不需要学习新语言),而只需要学习它里面新的Api

3.Node.js作用

  • 浏览器是 ( JS)(前端运行环境)
    • 解析执行JS基本语法 操作DOM元素属性和样式 AJAX
    • 开发网站
  • Node.js是 (JS)(后端运行环境)
    • 提供文件读写能力
    • 提供数据库读写能力
    • 提供Web服务器
    • 拓宽前端开发能力
    • 开发小程序、桌面应用、原生App、后端开发

※ 延伸前端工程师的能力范围,探究后端工程师的工作内容

4.Node.js环境与浏览器环境的区别

  • 在浏览器端:js由三部分组成:ECMAScript + BOM + DOM
  • 在NoeJS端:由ECMAScript + 内置模块(fs, http, path等) + 第三方模块(别人开发的模块)
  • 注意:NodeJS中没有DOM,也没有BOM,也没有window对象。
  • 浏览器是JS的前端运行环境Node.js是JS的后端运行环境

学Node.js的内置模块、自定义模块、第三方模块以及学习npm工具来安装,卸载第三方包

一.Node.js基本安装及使用

1.下载和安装Node.js环境
  • 下载对应版本的安装包(nodejs.org/zh-cn/)

    注意:

    • 1.win10 可以随意安装任何版本的Node
    • 2.但是win7只能安装12及其以下的版本Node 以往版本下载
  • 点击下载到的安装包,一路下一步默认安装

    注意:

    • 1.不能安装到中文目录如d:/软件,建议一直点击next即可
    • 2.安装完成之后, 它不会在桌面出现快捷图标
  • 打开小黑窗输入 node -v 能看到版本号表示安装成功

    • 在任意文件夹中最上方的路径中输入cmd后回车即可打开
2.小黑窗(昵称)打开方式:
1.window系统打开小黑窗的几种方式:
  • 按 windows + R 运行窗口中输入cmd 回车即可打开

  • 在任意目录的最上方路径输入框中输入 cmd 回车接口打开 (推荐)

  • 在任意目录中按住 shift键 + 鼠标右键后在弹出菜单中点击 在此处打开命令窗口 或 在此处打开PowerShell窗

    口即可打开

  • 在VSCode中,任意一个js文件上鼠标右键,选择在 集成终端中打开

2.苹果电脑操作:
3.在Node环境下运行各种js语法:

nodejs环境执行js基础语法,但是不能执行DOM,BOM

注意:node后面要加空格,格式: node 空格 要执行的js文件

4.学习常用的命令及按键:
  • 调用node程序,运行某个js文件

    node 空格 某个js文件
    复制代码
    
  • 清空界面:

    clear 或者 cls
    复制代码
    
  • 查看列表(list):

    ls/list/dir
    复制代码
    
  • 进去到目录中去:

    cd 目录名
    复制代码
    
  • 返回上一级目录:

    cd ..
    复制代码
    
  • 直接回到根目录:

    cd \
    复制代码
    
  • 停止Node程序:

    Ctrl+C
    复制代码
    
  • 补全文件名 目录名 多次tab会进行切换

    node 输入部分文件名后按下Tab键
    复制代码
    
  • 切换历史输入

    ↑↓上下箭头
    复制代码
    
  • 在小黑窗中复制内容:选中内容,再点鼠标右键

  • 把粘贴板中的内容复制到小黑窗: 直接在小黑窗点鼠标右键

二.核心模块

1.Node中的模块分类:
  • 核心模块
    • 就是nodejs自带的模块,在安装完nodejs之后,就可以任意使用啦。相当于学习js时使用的Math对象一样
    • nodejs官网查询核心模块:nodeapi官网:nodejs.org/dist/latest…
  • 自定义模块
    • 程序员自己写的模块。相当于我们在学习js时的自定义函数
  • 第三方包
    • 其他程序员写好的模块,nodejs生态提供了一个专门的工具npm来管理第三方模块,例如我们前面学习的echarts等
2.使用require导入模块:

语法: const 变量名(自己随意取) = require(‘核心模块名’)

const fs = require("fs")
复制代码

三.文件读取:

1.同步与异步的概念理解:
  • 同步:多个功能按先后顺序执行,后面任务等待前面任务执行完毕后才会执行。
    • 优缺点:如果前面任务执行太久会阻止后面任务的执行,降低程序执行性能,造成用户体验差,优点是编程方式简单,便于理解执行过程。
  • 异步:和同步相反,也就是在发出一个功能调用时,不管没有没得到结果,都继续往下执行。
    • 优缺点:不会造成阻塞,提升了程序执行性能,用户体验好,缺点是编程方式复杂,执行过程理解难度较大,会形成回调函数的嵌套。
  • 异步的表现形式:以一个回调函数的方式来实现异步任务的执行
2.fs.readFile异步读取文件基本写法:
语法:fs.readFile(path[, options], callback)
复制代码

参数:

  • path,读取文件的路径(相对路径或绝对路径)
  • options:读取文件的参数配置,通常用一个utf8字符串表示即可
  • callback: 读取完毕的回调函数(err,data)=>{}

代码:

//导入fs核心模块
const fs = require('fs')
//读取文件 第一个参数是文件地址 
fs.readFile('./1.txt', (err, data) => {
    //读取错误显示
    console.log(err);
    //读取成功显示
    console.log(data.toString());
})
复制代码
3.异步读取文件处理错误:
  • (err,data)=>{ } 中有两个参数

    • 参数1:err代表读取文件出错后的错误对象
    • 参数2:data代表读取文件成功后的内容,如果读取失败则data的值为为undefined
  • err参数特点:如果文件读取成功则err为null,如果读取失败则err存储的具体的错误信息对象

    改进代码:

//导入fs核心模块
const fs = require('fs')
//读取文件 第一个参数是文件地址 
fs.readFile('./1.txt', (err, data) => {
    //读取错误显示 读取错误就不再往下执行
    if (err) return console.log('文件读取错误');
    //读取成功显示
    console.log(data.toString());
})
复制代码
4.fs.readFileSync同步读取文件内容:
语法:let res = fs.readFileSync(path[, options])
复制代码

参数:

  • path,读取文件的路径(相对路径或绝对路径)
  • options:读取文件的参数配置,通常用一个utf8字符串表示即可

代码:

//导入fs核心模块
const fs = require("fs")
//同步读取
const data = fs.readFileSync('./1.txt').toString()
console.log(data);
复制代码

注意:读取文本内容文件时,utf8参数要加上或者toString(),不然打印出来的是一个Buffer二进制内容

5.同步读取文件处理错误:

try catch语法: try{ 放有可能出错的代码 } catch(err){ 报错后执行的代码,通常是输出错误 }

const fs = require("fs")
try {
    //正常业务代码
    const data = fs.readFileSync("./01.jpg")
    console.log(data);
} catch (error) {
    //try里面代码出错误捕获
    console.log('读取文件错误');
}
复制代码

四.文件写入:

1.fs.writeFile异步写入内容:
语法:fs.writeFile(path,data[, options], callback)
复制代码

特点:writeFile方法是覆盖式写入,后面的内容会将前面的内容覆盖

参数:

  • path,被写入文件的路径(相对路径或绝对路径)
  • data,要写入的内容,字符串格式
  • options:写入文件的参数配置,默认是utf8编码
  • callback:写入完毕的回调函数(err)=>{}

代码:

//导入fs核心模块
const fs = require('fs')
//写入文件  第二个参数必须是字符串格式
fs.writeFile('./1.txt', '张三', err => {
    写入错误显示 读取错误就不再往下执行
    if (err) return console.log('写入错误');
    //写入成功提示
    console.log('写入成功');
})
复制代码
2.fs.writeFileSync同步写入内容:
语法:fs.writeFileSync(path,data[, options])
复制代码

特点:writeFile方法是覆盖式写入,后面的内容会将前面的内容覆盖

参数:

  • path,被写入文件的路径(相对路径或绝对路径)
  • data,要写入的内容,字符串格式
  • options:写入文件的参数配置,默认是utf8编码

代码:

const fs = require("fs")

const arr = [{ id: 1 }, { id: 2 }]
//注意:1 fs.writeFile第二个参数格式要求字符串类型

//     2把对象专转成json字符串:JSON.stringify8
const newArr = fs.writeFileSync("./data.json", JSON.stringify(arr))

console.log(newArr);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值