nodejs
nodejs
Node.js是:一个采用chrome浏览器V8引擎来跑JS代码的环境。
浏览器是javascript的前端运行环境;
Node.js是javascript的后端运行环境;
nodejs能给给我们提供什么样的能力?
- 文件读写
- 数据库操作能力
- web服务器能力
我们js可以运行在哪两种环境上了?
- 浏览器
- node.js
下载按照nodejs
英文官网 https://nodejs.org/en/
点击左侧的按钮(有LTS标识的那个),会立即下载。
版本说明:
- LTS: 长期稳定版(Long Term Support))。 项目开发建议使用长期稳定版
- Current: 最新版。最新版包含了一些新功能,如果想学习最新的功能,则可以使用该版本。最新版可能会有一些未知的bug。
中文网
http://Nodejs.cn/
https://nodejs.org/zh-cn/
注意:
- 建议安装目录所使用英文路径,不要出现中文
- 安装完成之后, 它不会在桌面出现快捷图标
测试是否安装成功
打开任意一个小黑窗,输入node -v
能够看到Nodejs版本号即为安装成功。
在Node环境下运行js代码
步骤:
示例
$ node .\07异步写入文件.js
打开命令行工具的方式
- 方法1:在资源管理器中按下shift,同时点击鼠标右键,可以选择在此处打开powershell/命令行窗口
- 方法2:在资源管理器中,打开这个目录,直接在地址栏中写入
cmd
- 方法3: vscode中的右键,选择在集成终端打开
Node.js和浏览器端的区别
常用的命令行下的命令及按键
$ node js文件名 //调用 node 程序,运行某个js文件
$ clear 或 cls //清空界面
$ dir //查看目录下文件
$ cd 目录名 //进入到目录中去 (是进入到子级目录)
$ cd .. // 返回上一级目录
$ cd \ // 直接回到根目录
Ctrl+C // 停止 Node 程序
输入部分文件名后按下 Tab 键 // 补全文件名 或 目录名, 多次tab会进行切换
↑ ↓ 上下箭头 // 切换历史输入
复制:选中内容然后右键
粘贴:光标锁定目标地方右键即可
注意 指 的 是 所 在 的 目 录 , 复 制 指 令 时 切 勿 将 指的是所在的目录,复制指令时切勿将 指的是所在的目录,复制指令时切勿将也复制进去 如下$指的是node前面那部分
核心模块
node官方文档地址
http://nodejs.cn/api/
http://api.nodejs.cn/
核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。一般在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
fs模块
fs模块(fs是 FileSystem的简写)是Node.js用来进行文件操作的模块,它属于核心模块。你引入之后就可以直接使用了。
-
异步读取
const fs = require('fs') //导入模块 fs.readFile('./1 hello world.txt', 'utf8', (err, data) => { console.log(err); console.log(data.toString()); })
-
同步读取
const fs = require('fs') let rs = fs.readFileSync('./1 hello world.txt','utf8') console.log(rs);
-
写入文件
const fs = require('fs') const data = '世界你好' fs.writeFile('./1 hello world.txt', data, (err) => { if (err) return console.log('文件写入失败'); console.log('写入成功'); })
注意
在同步读取中如果读成功,则会获取读出来的数据,如果失败了,则会中间后续所有的代码执行。
解决方案:用try. catch 结构
try { const fs = require("fs") let rs = fs.readFileSync('文件路径',"utf8"); console.log(rs) } catch(err) { console.log(err) }
写入文件时它是覆盖写入:会把文件中的内容全部删除,再填入新的内容。
写入json文件需注意数据类型是json类型,一般可以用JSON.stringfy转换
读取是是buffer文件也可以使用相对应的转换来获取我们能看得懂的文件类型