十分钟带你认识Node.js

Node.js是什么

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时
上面的概念中有两个特殊的名词,解释如下:

● chrome V8引擎: chrome浏览器用来解析和执行js代码的工具;
● 运行时:理解为一个容器,用来运行代码的环境;

所以,对Node.js更通俗的解释是:一个用chrome浏览器V8引擎来跑JS代码的环境。
● 浏览器是javascript的前端运行环境;
● Node.js是javascript的后端运行环境;

Nodejs的理解

● Node全名是Node.js(也叫Node, nodejs, node.js),但它不是一个js文件,而是一个软件
● Node.js是一个基于Chrome V8引擎的javascript的运行环境,在这个环境中可以执行js代码
● Node.js提供了大量的内置模块及丰富的第三方模块,能够让我们完成文件读写、Web服务器、操作数据库等功能

学习Node.js的意义

● 在Node环境下,写js代码实现后端的功能(web服务器,写接口,读写数据库…)
● 了解后端程序员的工作,增加职场竞争力
Node.js的学习内容

它只是一个环境,不是一门语言(不需要学习新语言),我们要学习它的两个内容: 模块系统, npm包管理工具。

**模块系统。能用不同的模块来完成不同的功能,例如:创建web服务器,写接口,连接操作数据库

NPM包管理工具。通过npm来管理我们的需要的第三方包,为后续学习框架打下基础**

下载

版本说明

● LTS: 长期稳定版(Long Term Support))。 项目开发建议使用长期稳定版
● Current: 最新版。最新版包含了一些新功能,如果想学习最新的功能,则可以使用该版本。最新版可能会有一些未知的bug。

测试是否安装成功

在终端里面打开,小黑窗
打开任意一个小黑窗,输入node -v能够看到Nodejs版本号即为安装成功。
**

打开小黒窗的4种方式

**
方法1:cmd窗口(window+R, —>运行–>录入cmd,回车)
十分钟带你认识Node.js_第1张图片
方法2:在资源管理器中,打开任意目录,直接在地址栏中写入 cmd,并回车

方法3:powershell(window10操作系统)

在资源管理器中按下shift,同时点击鼠标右键,可以选择在此处打开powershell/命令行窗口。
十分钟带你认识Node.js_第2张图片

方法4: vscode中的右键,在命令行中运行

命令及键盘按键

node 空格 某个js文件 # 调用 node 程序,运行某个js文件

clear 或者 cls # 清空界面

ls/dir # 查看列表(list)

cd 目录名 # 进入到目录中去

cd … # 返回上一级目录

cd \ # 直接回到根目录

Ctrl+C # 停止 Node 程序

输入部分文件名后按下 Tab 键 // 补全文件名 或 目录名, 多次tab会进行切换

↑ ↓ 上下箭头 # 切换历史输入

复制粘贴

在小黑窗中复制内容:选中内容,再点鼠标右键

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

Node.js和浏览器端的区别

十分钟带你认识Node.js_第3张图片
十分钟带你认识Node.js_第4张图片
在浏览器端

js由三部分组成:ECMAScript + BOM + DOM

在nodejs端

有ECMAScript + 内置模块(fs, http, path,…)。在nodejs中是没有BOM、DOM、window,但使用ECMAScript是通用的

相同点:

  1. 都是可以运行js代码的容器,更严格一点说:都可以运行ECMAScript
  2. 要下载安装才能使用

不同点:

  1. 各有不同的API: nodejs运行js时,不能写DOM,BOM,也不能用window对象了
  2. Nodejs 环境可以去实现后端的功能
  3. 浏览器环境可以去实现前端的功能

内部的模块分为: 核心模块(自带) 自定义模块 (自己写) 第三封方模块(其他人写)

**

fs对象的方法

**
// 引入模块
const fs = require(‘fs’);
// 可以使用var、let,但是建议使用const,因为我们不希望它被改变。
// 名字不必大写成FS,一般也就叫fs这个名字。

fs.各种API(实参)

fs.readFileSync( ’ 这里面是文件的路径’, ‘utf8’, )
这个是同步的读取文件
fs.writeFileSync( ’ 这里面是文件的路径’, ‘内容’ , ‘utf8’, )
这个是同步的书写内容 如果没有文件
fs.writeFileSync(pathName, content, option);
// 参数1: 要写入的文件路径 — 相对路径和绝对路径均可,推荐使用绝对路径
// 参数2: 要写入文件的内容
// 参数3: 配置项,设置写入的字符集,默认utf-8

在nodejs, 我们提到的相对/绝对路径理解如下:

● 绝对路径: 从磁盘根目录开始到指定文件的路径。
● 相对路径:是以某个文件的位置为起点,相对于这个位置来找另一个文件。

__dirname __filename 获取绝对路径

nodejs中提供了两个全局变量来获取获取绝对路径:

● __filename:获取当前被执行的文件的绝对路径
● __dirname:获取当前被执行的文件的文件夹所处的绝对路径

全局变量的含义是:

● 变量:它们的值是变化的。在不同的文件中值就不同,因为文件的路径也不同嘛。
● 全局:在任意地方都可以直接使用。

path模块

作用

作用是用来处理路径问题:拼接,分析,取后缀名等等。

● 官网文档地址
● 是node中的核心模块之一

使用步骤

  1. 引入模块

const path = require(‘path’)

  1. 使用模块

调用API即可

常用的api

● path.basename() :此方法返回 path 的最后一部分。一般可用来获取路径中的文件名。
● path.join() :路径拼接。
● path.parse(pathurl) :把一个路径转成一个对象

示例

path.basename(‘/foo/bar/baz/asdf/quux.html’);// 返回: ‘quux.html’
path.basename(‘/foo/bar/baz/asdf/quux.html’, ‘.html’);// 返回: ‘quux’
path.dirname(‘/foo/bar/baz/asdf/quux’);// 返回: ‘/foo/bar/baz/asdf’
path.extname(‘index.html’);// 返回: ‘.html’

注意:path模块并不考虑其中地址是否真的存在,只是单纯调用方法,获取结果。

使用path模块解决文件读写中的路径拼写

/拼接html5.jpg的绝对路径

  1. 找到当前文件夹的绝对路径
    console.log(__dirname)
  2. 加上 html5.jpg
    const fs = require(‘fs’)
    const path = require(‘path’)
    const filePath = path.join(__dirname, ‘html5.jpg’)
    const filePath = __dirname + ‘\html5.jpg’
    走一步,看一步
    console.log(filePath)

fs.readFile(filePath,function(err, data) {
if(err) {
console.log(err)
return
}
console.log(data)
})

附:path模块常用方法列表
方法 作用
path.basename(path[, ext]) 获取返回 path 的最后一部分(文件名)
path.dirname(path) 返回目录名
path.extname(path) 返回路径中文件的扩展名(包含.)
path.format(pathObject) 将一个对象格式化为一个路径字符串
path.join([…paths]) 拼接路径
path.parse(path) 把路径字符串解析成对象的格式
path.resolve([…paths]) 基于当前工作目录拼接路径

附:fs模块中的常用方法
API 作用 备注
fs.access(path, callback) 判断路径是否存在
fs.appendFile(file, data, callback) 向文件中追加内容
fs.copyFile(src, callback) 复制文件
fs.mkdir(path, callback) 创建目录
fs.readDir(path, callback) 读取目录列表
fs.rename(oldPath, newPath, callback) 重命名文件/目录
fs.rmdir(path, callback) 删除目录 只能删除空目录
fs.stat(path, callback) 获取文件/目录信息
fs.unlink(path, callback) 删除文件
fs.watch(filename[, options][, listener]) 监视文件/目录
fs.watchFile(filename[, options], listener) 监视文件
fs.existsSync(absolutePath) 判断路径是否存在

你可能感兴趣的:(笔记,node.js)