首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
安卓12+后的系统默认使用Splash配置(icon+背景色)导致重复启动Splash屏幕
如果是老项目会发现在新的原生系统上打开,比如模拟器上,总是会先出现一个icon+白色或者黑色背景色,随后出现我们自己的Splash屏幕。国内的设备大部分没有强制使用,所以不影响,不过有其他Splash问题本文也会给出解决方案,比如全屏幕,透明状态栏,避免home(主页)短暂的闪烁,一般是空的Header或者自定义了Header会出现这个问题。
2winter
2025/08/16
1000
Android 12 新功能:SplashScreen优化启动体验
由于很多应用在启动时需要进行一些初始化事务,导致在启动应用时有一定的空白延迟,在之前我们一般的做法是通过替换 android:windowBackground 的自定义主题,使应用启动时及时显示一张默认图片来改善启动体验。
BennuCTech
2022/02/24
6.2K0
Android 12 新功能:SplashScreen优化启动体验
Android 12上全新的应用启动画面,还不适配一下?
我们常常花费精力去打造引导画面或广告画面,而作为第一印象的启动画面却容易被忽视。回想下以前都是怎么处理这个画面的:
Rouse
2021/05/28
3.3K0
Android 12上全新的应用启动画面,还不适配一下?
Android全方位性能调优:启动页面(闪屏页面)的实现
首先在AndroidManifest.xml中注册新加入的SplashActivity。 然后将的内容放在SplashActivity下。 意思就是让SplashActivity的内容先启动。然后再跳转到MainActivity
Android架构
2019/07/13
2.3K0
Android全方位性能调优:启动页面(闪屏页面)的实现
Android 12 SplashScreen API快速入门
这次的Android系统变化当中,UI的变化无疑是巨大的。Google在Android 12中采取了一种叫作Material You的界面设计,一切以你为中心,以你的喜好为风格。相信大家一旦上手Android 12之后应该能立刻察觉到这些视觉方面的变化。
用户1158055
2021/09/22
2.3K0
Android 12 SplashScreen API快速入门
Android- SplashPage实现应用秒开-3步
Android 应用冷启动时,需要从Application开始启动,加载时间就会比较长,这段时间里,用户所能看到的就是”白屏“(这是因为默认的AppTheme的 android:windowBackground 默认是设置成白色的),因此我认为真正的启动页就应该是让用户点开应用时看到的不是”白屏“,而是我们创建的一个页面,可以是一张图片、一段文字。 就会让人感觉到,这个应用可以秒开。
用户9227784
2021/12/13
5040
Android 12 快速适配要点
Android 12 需要更新适配点并不多,本篇主要介绍最常见的两个需要适配的点:android:exported 和 SplashScreen 。
GSYTech
2021/12/13
1.2K0
Android 12 快速适配要点
深入探讨Android启动优化策略
在当今激烈竞争的移动应用市场,应用的启动速度直接影响着用户的第一印象和满意度。作为主流的移动操作系统之一,Android的启动优化是开发者必须关注的关键领域。本文将详细介绍一些强大有效的Android启动优化策略,帮助你优化应用的启动过程,为用户创造更出色的体验。
Rouse
2023/08/31
4390
深入探讨Android启动优化策略
Android 音乐APP(二)启动白屏优化、定位当前播放歌曲
  Android应用冷启动时,又会短暂的黑屏或者白屏,然后才会进入主页面,黑屏是在Android版本低的时候才会出现,比如Android4.4、5.0。而现在的Android版本出现的就是白屏。这个虽然不应用功能的使用,但是对用户来说体验感并不好。那么怎么解决这个问题呢?我相信很多的博客都有这个方面的讲解,但是真正有良好体验的比较少,下面的这种也是参考了网易云音乐的启动方式。
晨曦_LLW
2020/10/26
1.1K0
Android 音乐APP(二)启动白屏优化、定位当前播放歌曲
Android启动页黑屏及最优解决方案
相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。那么这个黑屏或者白屏到底是怎么一回事呢?它的最好的解决方案应该是怎样的呢?今天我们认真的讨论一下这个小问题。
用户1269200
2018/08/14
1.9K0
Android启动页黑屏及最优解决方案
手把手教你搭建android模块化项目框架(十)——美好的项目从Splash开始
原因是android app在启动时,由于application初始化等原因会有一个短暂的延迟,导致点击launcher后不能马上启动activity并渲染。通常我们使用的方案是添加SplashActivity,并且将windowbackground设置成app品牌图标等方式能够让用户点击launcher后快速相应并展示,提升用户体验。
支离破碎_superLee
2023/09/01
4750
Android 性能分析学习(启动速度优化)
启动速度是用户体验app的第一感官,所以如果APP卡顿的话,给用户的体验会非常的糟糕。 本文主要针对这点进行的分析学习以及记录。
艳龙
2021/12/16
9880
Android 性能分析学习(启动速度优化)
Android创建启动画面
每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。
战神伽罗
2019/07/22
1K0
短视频app源码开发,如何添加启动界面
打开短视频app源码时,一般都会有一个启动界面,启动界面除了会展示APP的logo外,大多数都会将广告直接放到上面,起到引流盈利的目的。
云豹科技程序员
2021/06/21
7450
Android性能优化(一)—— 启动优化,冷启动,热启动,温启动
App启动方式分三种:冷启动(cold start)、热启动(hot start)、温启动(warm start)
233333
2024/06/28
6130
Android性能优化(一)—— 启动优化,冷启动,热启动,温启动
AndroidStudio制作欢迎界面与应用图标
大家好,我是 Vic,今天给大家带来AndroidStudio制作欢迎界面与应用图标的概述,希望你们喜欢
达达前端
2019/07/03
1.6K0
Android 启动优化详解
Dex文件用的到的类和安装包APK里面各种资源文件一般都比较小,但是读取非常频繁。
ruochen
2021/12/15
5.7K0
Android 启动优化说明、黑白屏处理
Android 启动优化说明、黑白屏处理 前言 正文 一、启动来历 二、启动说明 1. 冷启动 2. 热启动 3. 温启动 4. 冷启动流程 5. 优化时间 6. 优化方案 三、黑白屏处理 1. 创
晨曦_LLW
2022/03/11
1.3K0
Android 启动优化说明、黑白屏处理
在React Native中构建启动屏
在这个教程中,我们将演示如何在React Native中构建一个启动屏幕。我们将指导你如何使用 react-native-splash-screen 为iOS和Android应用构建出色的欢迎界面。此外,由于Expo很受欢迎,许多人常常选择使用它,我们也将探讨如何在Expo中构建启动屏幕。
前端小智@大迁世界
2024/02/27
3.7K0
在React Native中构建启动屏
推荐阅读
相关推荐
安卓12+后的系统默认使用Splash配置(icon+背景色)导致重复启动Splash屏幕
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验