运行在服务端的JavaScript——nodejs(一)
初识nodejs
思考:为什么JavaScript可以在浏览器中被执行
不同的浏览器中使用不同的JavaScript解析引擎:
- Chrome浏览器 => v8
- Firefox 浏览器 => OdinMondkey(奥丁猴)
- Safri浏览器 => JSCore
- IE浏览器 => Chakra(查克拉)
- etc...
其中,Chrome的v8解析引擎的性能最好
浏览器中的JavaScript运行环境
运行环境是指代码正常运行所需的必要环境
总结:
- v8引擎负责解析和执行JavaScript代码。
- 内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用
nodejs简介
什么是Node.js
\(Node.js is JavaScript runtime built on Chrome's v8 JavaScript engine.\)
Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境。
Node.js中的JavaScript运行环境
浏览器是JavaScript的前端运行环境
Node.js是JavaScript的后端运行环境
Node.js中无法调用DOM和BOM等浏览器内置API。
nodejs可以做什么
Node.js作为一个JavaScript的运行环境,仅仅提供了基础的功能和API。然而,基于Node.js提供的这些基础能,很多强大的工具和框架如雨后春笋,层出不穷,所以学会了Node.js,可以让前端程序员胜任更多的工作和岗位。
-
基于Express框架官网,可以快速构建Web应用
-
基于Elecron框架官网,可以构建跨平台的桌面应用
-
基于restify框架官网,可以快速构建API接口项目。
-
读写和操作数据库、创建实用的命令行工具富足前端开发、etc...
nodejs环境,LTS版本和Current版本的不同
- LTS为长期稳定版,对于最求稳定性的企业级项目来说,推荐安装LTS版本的Node.js
- Current为新特性尝鲜版,对于热衷于尝试新特性的用户来说,推荐安装Current版本的Node.js。但是,Current版本中可能存在隐藏的Bug或安全性漏洞,因此不推荐在企业级项目中使用Current版本的Node.js
fs文件系统模块
什么是fs文件系统模块
fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
例如:
fs.readFile()
方法,用来读取指定文件中的内容fs.writeFile()
方法,用来向指定的文件中写入内容
如果要在JavaScript代码中,使用fs模块来操作文件,则需要使用如下方式先导入它:
const fs = require('fs')
读取指定文件中的内容
fs.readFile()的语法格式
使用fs.readFile()方法,可以读取指定文件中的内容,语法格式如下:
fs.readFile(path[,options],callback)
参数解读:
- 参数1:必选参数,字符串,表示文件的路径。
- 参数2:可选参数,表示以什么编码格式来读取文件
- 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
判断文件是否读取成功
使用if进行判断,如果error为null,如果error为null则读取成功。否则读取失败。
向指定文件写入内容
fs.writeFile()的语法格式
使用fs.write()方法,可以向指定的文件中写入内容,语法格式如下:
fs.writeFile(file,data[,options],callback)
参数解读:
- 参数1:必选参数,需要指定一个文件路径字符串,表示文件的存放路径。
- 参数2:必选参数,表示要写入什么内容。
- 参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8。
fs模块-路径动态拼接的问题
在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码在运行的时候,会议执行node命令时所处的目录,动态拼接处被操作文件的完整路径。
解决方案:在使用fs模块操作文件时,直接提供完整的路径,不要提供./或者../开头的相对路径,从而防止路径动态拼接问题。
但是以上绝对路径又太过繁琐,不利于移植和维护,这时node为我们提供了一个变量__dirname
表示当前文件所处的目录。
path路径模块
什么是path路径模块
path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
例如:
- path.join()方法,用来将多个片段拼接成一个完整的路径字符串。
- path.basename()方法,用来从路径字符串中,将文件名解析出来
如果要在JavaScript代码中,使用path模块来处理路径,则需要使用如下的方式先导入它:
const path = require('path')
路径拼接
path.join()的语法格式
使用path.join()方法,可以把多个路径片段拼接位完整的路径字符串,语法格式如下:
path.join([...paths])
参数解读:
- ...paths<string> 路径片段的序列
- 返回值:<sting>
path.join()的代码示例
使用path.join()方法,可以把多个路径片段拼接位完整的路径字符串:
const pathStr = path.join('\a','\b\c','..\','e')
console.log(pathStr); // 输出 \a\b\d\e
const pathStr2 = path.join(__dirname,'./files/1.txt')
console.log(pathStr2) // 输出 当前文件所处目录\files\1.txt
获取路径中的文件名
path.basename()的语法格式
使用path.basename()方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:
path.basename(path[,ext])
参数解读:
- path<sting> 必选参数,表示路径的字符创
- ext<string> 可选参数,表示文件扩展名
- 返回:<sting> 表示路径中的最后一部分
获取路径中的文件扩展名
path.extname()的语法格式
使用path.extname()方法,可以获取路径中的扩展名部分,语法格式如下:
path.extname(path)
参数解读:
-
path<string>必选参数,表示一个路径的字符串
-
返回:<string>返回得到的扩展名字符串
reg.exec()
方法用来将传入参数解析成为一个字符串数组,其数组的第一个元素则是正则表达式匹配的结果。
本文来自博客园,作者:maplerain,转载请注明原文链接:https://www.cnblogs.com/maplerain/p/16303999.html 博主B站