首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Node.js安装及文件的读写

Node.js安装及文件的读写

作者头像
兮动人
发布于 2021-06-11 11:21:26
发布于 2021-06-11 11:21:26
1.4K00
代码可运行
举报
文章被收录于专栏:兮动人的博客兮动人的博客
运行总次数:0
代码可运行

文章目录

2.1.安装Node环境·查看当前Node环境的版本号

  • 下载: https://nodejs.org/en/download/
  • 安装
    • 傻瓜式的一路next就可以了
    • 对于已经安装过的,重新安装就会升级
  • 确认Node环境是否安装成功
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
node -v
或
node --version
  • 环境变量

2.2.Hello World

  1. 创建编写JavaScript脚本文件
  2. 打开终端,定位到脚本文件所属目录
  3. 输入node文件名执行对应的文件

注意:文件名不要使用node.js 来命名,否则执行 node 文件名 会打开文件。也就是说除node这个名字你随便起,而且最好也不要使用中文。

案例1:新建名为00-helloworld.js的文件,写入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var foo = 'hello nodejs'

console.log(foo)
  • cmd窗口输出或gitbash或vscode自带的终端执行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
node 00-helloworld.js

案例2:没有DOM和BOM

  • 在 Node 中,采用 EcmaScript 进行编码
  • 没有 BOM、DOM
  • 和浏览器中的 JavaScript 不一样
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log(window)
console.log(document)
  • 这里的报错信息类似于浏览器后台中的报错(F12那里的),这里报错是:引用错误,Window没有定义
  • 在node中是没有DOM和BOM的
  • 解析执行JavaScript
  • 读写文件
  • http

案例3:读取文件

  • 浏览器中的 JavaScript 是没有文件操作的能力的
  • 但是 Node 中的 JavaScript 具有文件操作的能力
  • fs 是 file-system 的简写,就是文件系统的意思
  • 在 Node 中如果想要进行文件操作,就必须引入 fs 这个核心模块
  • fs 这个核心模块中,就提供了所有的文件操作相关的 API
  • 例如:fs.readFile 就是用来读取文件的
  1. 使用 require 方法加载 fs 核心模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
  1. 读取文件
    • 第一个参数就是要读取的文件路径
    • 第二个参数是一个回调函数
      • 成功
        • data 数据
        • error null
      • 失败
        • data undefined没有数据
        • error 错误对象
  • error 如果读取失败,error就是错误对象 如果读取成功,error就是null
  • data 如果读取成功,data就是读取到的数据 如果读取失败,error就是错误对象
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fs.readFile('./data/hello.txt', function (error, data) {
	console.log(data)
})
  • 在新建的 hello.txt 文件中写入
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hello nodejs
你好,Node.js
  • 执行 node 02-读取文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/hello.txt', function (error, data) {
	console.log(data)
})
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 6a 73 0d 0a 0d 0a>
  • 文件中存储的其实都是二进制数据 0 1
  • 这里为什么看到的不是 0 和 1 呢?原因是二进制转为 16 进制了
  • 但是无论是二进制01还是16进制,人类都不认识
  • 所以我们可以通过 toString 方法把其转为我们能认识的字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/hello.txt', function (error, data) {
	console.log(data.toString())
})
  • 执行 node 02-读取文件

案例4:写文件

  • 第一个参数:文件路径
  • 第二个参数:文件内容
  • 第三个参数:回调函数 error,这里只接受一个函数,error是形参,也可以去其他名
    • 成功:
      • 文件写入成功
      • error 是 null
    • 失败:
      • 文件写入失败
      • error 就是错误对象
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')

fs.writeFile('./data/你好.md', '大家好,给大家介绍一下,我是Node.js', function (error) {
  console.log('文件写入成功')
})

注意:可以在vscode中右击文件名直接打开所在的终端位置或快捷键 Ctrl+Alt+O

  • 执行:
  • 此时可以看到:这里执行后会直接创建这个 你好.md 文件并且写入内容

案例5:读取不存在的文件

  • a.txt 没有被创建的情况下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/a.txt', function (error, data) {
})
  • 执行后无任何提示
  • 已经创建好的hello.txt,查看是否有错误
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/hello.txt', function (error, data) {
	console.log(error)
})
  • 执行,说明读取成功了
  • 改为不存在的 a.txt
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/a.txt', function (error, data) {
	console.log(error)
})
  • 执行,说明读取失败了

error是错误对象,data是真正的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/a.txt', function (error, data) {
	console.log(error)
	console.log(data)

	console.log(data.toString())
})

undefined 没有 toString这个属性

  • 成功
    • data 数据
    • error null
  • 失败
    • data undefined 没有数据
    • error 错误对象

加上错误判断

  • a.txt没有被创建,在这里就可以通过判断 error 来确认是否有错误发生
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.readFile('./data/a.txt', function (error, data) {
	 if (error) {
    console.log('读取文件失败了')
    // return
  		} else {
    console.log(data.toString())
  	}
})

写入文件失败

  • 此时文件名为 ?.txt,因为在Windows中特殊字符不能作为文件命名
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.writeFile('./data/?.txt', '大家好,给大家介绍一下,我是Node.js', function (error) {
   console.log(error)   // 查看是否有错误

文件写入成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.writeFile('./data/你好.txt', '大家好,给大家介绍一下,我是Node.js', function (error) {
   console.log(error)   // 查看是否有错误

error = null 说明文件写入成功

  • 加上判断
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fs = require('fs')
fs.writeFile('./data/你好.txt', '大家好,给大家介绍一下,我是Node.js', function (error) {

   if (error) {
    console.log('写入失败')
  } else {
    console.log('写入成功了')
  }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验