我是靠谱客的博主 傲娇外套,最近开发中收集的这篇文章主要介绍浅谈node.js1.什么是Node?2.Node可以做什么?3.为什么要学习NodeJS?4.全局对象5.Node模块化6.基本内置模块(在下载号node之后,自动帮你封装好的模块)7.文件I/O,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.什么是Node?

Node.js® 是基于Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时。

不需要处理兼容性问题 2009.05

1.1Node是一个JS的运行环境

js的运行方式:

1.客户端:把js文件引入,然后打开浏览器,控制台查看

2.node服务端:

1.cmd窗口中cd命令切换到需要打开的文件夹下,运行 node 文件名

2.直接在文件夹下 shift+右键

3.vscode编辑器中直接在当前文件的终端中打开,submint编辑器是需要安装terminal插件

1.2对比浏览器中的JS

1.2.1 浏览器中的JS

web api 提供了操作浏览器窗口和页面的功能。例如:BOM操作,DOM操作,AJAX

这些功能有局限性。例如:跨域问题,文件读写

1.2.2 Node中的JS

nodeAPI几乎提供了所有能做的事情

1.2.3 Node中的JS对比浏览器中的JS

① 浏览器提供了有限的能力,JS只能使用浏览器提供的功能做有限的操作

② Node提供了完整的控制计算机的能力,NodeJS几乎可以通过Node提供的接口,实现对整个操作系统的控制

1.3官方文档

Node官网:Node.js

Node中文官网(民间网):Node.js 中文网

2.Node可以做什么?

2.1 开发桌面应用程序

例如QQ,微信... 经常用的VScode就是用node开发的

2.2 开发服务器应用程序

结构1:微型结构

Node服务器要完成请求的处理、响应、和数据库交互、各种业务逻辑

这种结构通常应用在微型的站点上。例如:个人博客、公司官网

结构2:大型结构

这种结构非常常见,应用在各种规模的站点上

Node服务器

不做任何与业务逻辑有关的事情。绝大部分时候,只是简单的转发请求。但可能会有一些额外的功能

1.简单的信息记录:请求日志、用户偏好、广告信息

2.静态资源托管

3.缓存

后端服务器

处理大型的业务逻辑

3.为什么要学习NodeJS?

1. JS开发省时,省力

2. 因为nodeJS是单线程,没有线程切换的损耗,没有线程之间的竞争。

3. IO处理非常快

4. node不适合处理复杂运算,例如java可以开多线程进行并行运算

其他服务端语言(例如java,.net)能做的事情,node全部都能做。语言没有好坏之分,只有场景的适合。

node开发者就是为了寻找快速的IO处理的语言,所以选择了JavaScript

4.全局对象

global

跟浏览器环境中的this相同,表示顶级对象

注意:浏览器的全局环境this表示window,node中this不是表示global

1.setTimeout,setInterval

用法跟浏览器环境完全相同。

注意:浏览器返回的是ID,node环境中返回的是对象

2.setImmediate

类似于 setTimeout 0

3.console

浏览器在控制台输出

node在命令行输出

4.__dirname*

获取当前模块所在的目录

注意:并非global属性

5.__filename*

获取当前模块的文件路径

注意:并非global属性

6.Buffer

类型化数组

继承自 UInt8Array

计算机中存储的基本单位:字节

使用时、输出时可能需要用十六进制表示

7.process

cwd()

返回当前nodejs进程的工作目录,运行的cmd窗口的目录

exit()*

强制退出当前node进程

可传入退出码,0表示成功退出,默认为0,主要是为了输入到日志里面的

argv*

获取命令中的所有参数

platform

获取当前的平台系统

kill(pid)

根据进程ID杀死进程

env

获取环境变量对象

5.Node模块化

1.模块的查找

1. 绝对路径

2. 相对路径

2.1 加 ./ 情况

在服务端,一定要加./,表示从当前目录开始

2.2 不加./情况

①检查是否是内置模块,如:fs、path等

②检查当前目录中的node_modules

③检查上级目录中的node_modules

3.后缀名

如果不提供后缀名,自动补全

补全顺序为:js,json,node,mjs

4.文件名

如果仅提供目录,不提供文件名,则自动寻找该目录中的index.js

5.运行node ./

package.json中的main字段,默认值为index.js

2.module对象

记录当前模块的信息

3.require函数

resolve函数 拼接成一个绝对路径

4.模块化原理

当执行一个模块或使用require时,会将模块放置在一个函数环境中

6.基本内置模块

(在下载号node之后,自动帮你封装好的模块)

1.os

参考地址:OS | Node.js v12.22.7 Documentation

1.EOL

操作系统版本

2.arch()

操作系统CPU体系结构

3.cpus()

CPU内核的信息

4.freemem()

电脑剩余多少内存,返回为字节

5.homedir()

用户目录

6.hostname()

主机名

7.tmpdir()

获取临时文件目录

2.path

参考地址:Path | Node.js v12.22.7 Documentation

注意:path模块操作全部相当于字符串操作,并不会判断路径是否真实存在

1.basename

获取某段路径的最后一个 / 后面的内容

第二个参数为可选参数,如果匹配,去掉匹配内容

2.sep

操作系统的分隔符

3.delimiter

输出当前操作系统的分隔符

4.dirname

获取路径的目录

5.extname

获取路径的后缀名

6.join

拼接路径,会根据操作系统拼接

7.normalize

根据操作系统规范路径

8.relative

换成相对路径的格式

9.resolve*

转换成绝对路径,根据cmd窗口来拼接

注意:相对于命令行工具,一般使用配合__dirname使用

3.url

参考地址:URL | Node.js v12.22.7 Documentation

1.parse()*

字符串转换成对象

2.format()

对象转换成字符串

4.util

参考地址:Util | Node.js v12.22.7 Documentation

1.callbackify

异步函数转换成callback形式

2.promisify

callback形式转换成异步函数

3.isDeepStrictEqual

两个对象深度比较

7.文件I/O

1. I/O:input output

对外部设备(磁盘、网卡、显卡、打印机...)的输入输出

IO的速度往往低于内存和CPU的交互速度

2.fs模块

参考地址:File system | Node.js v12.22.7 Documentation

1. fs.readFile

读取一个文件

2. fs.writeFile

向文件写入内容

文件名不存在会新建,目录不存在报错

3.fs.stat

获取文件或目录信息

1.size

占用字节

2.atime

上次访问时间

3.mtime

上次文件内容被修改时间

4.ctime

上次文件状态被修改时间

5.birthtime

文件创建时间

6.isDirectory()

判断是否是目录

7.isFile()

判断是否是文件

4.fs.readdir

获取目录中的文件和子目录

5.fs.mkdir

创建目录

6.fs.exists

判断文件或目录是否存在

最后

以上就是傲娇外套为你收集整理的浅谈node.js1.什么是Node?2.Node可以做什么?3.为什么要学习NodeJS?4.全局对象5.Node模块化6.基本内置模块(在下载号node之后,自动帮你封装好的模块)7.文件I/O的全部内容,希望文章能够帮你解决浅谈node.js1.什么是Node?2.Node可以做什么?3.为什么要学习NodeJS?4.全局对象5.Node模块化6.基本内置模块(在下载号node之后,自动帮你封装好的模块)7.文件I/O所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部