认识node.js

94 阅读3分钟

认识node.js

  • node.js是一个开源、跨平台的JavaScript运行时环境
  • 运行时环境:一个时浏览器,最早的时候只认识HTML css,后续谷歌推出了v8引擎,提升了识别JS的能力;另外一个就是node,它是基于V8引擎,给我们提供了一个JS的运行环境。
  • node选择了JS,不是JS选择了node;

node.js和浏览器的差别:

浏览器:BOM + DOM + ES;可以有模块化开发,可以用非模块化开发。

* DOM:浏览器提供的能力;

* BOM:html提供的能力;

* ES:JS语言的一个规范;

node.js:运行JS时直接运行;必须是模块化开发(CommonJS模块化语法);除了ES6模块化语法,其他ES6新特性都支持使用。

* 不需要放在html文档中,所以没有DOM;

* 直接在系统中运行,BOM也就没有了;

* 只剩下ES规范

node.js 基本命令行常用操作

* 返回上一级:输入命令 cd ..;

* 查询当前目录内的子目录:dir;

* 进入对应目录:cd 文件夹名称;

* 清屏:cls clear;

利用node执行js代码:

打开cmd(需要运行的js文件所在的目录),输入命令 node 文件名;

(也可以直接打开cmd,输入命令node,直接回车,进入一个线程,相当于在浏览器的控制台,可以在内部书写js代码;但是没有提示,书写的代码没办法保存。)

node的模块化:

所有的东西都是模块,分为自定义模块(自己写的),内置模块(nodejs提供的),第三方模块(别人写好上传到npm的,需要下载到本地使用)。

导出:node中每一个JS文件都自带一个module,

语法1:module.exports.属性名 = 属性值;(在默认对象内添加属性,导出的还是一个对象)

语法2:module.exports = 新值;(重新给默认对象赋值,导出的就是新值)

node中每一个js文件都自带一个exports这个变量,内部存储指向module.exports这个对象的地址;

语法3:exports.属性名 = 属性值;(在默认对象内添加一个属性,导出还是一个对象)

导入:node中每一个js文件都自带一个require;

语法:require('地址');返回值:返回这个导入文件的exports这个。

几个常用的内置模块:

1,内置模块fs:node提供的操作文件/文件夹的能力;

* 异步读取文件:fs.readFile('文件路径','配置项','回调函数')

文件路径:必须传;

配置项:选填(一般填 utf-8);

回调函数:必须填;

fs.readFile('./index.txt', 'utf-8', function (err, data){err: 如果读取失败, 会给一个 err,data: 读取成功,文件的内容})

* 同步读取文件:let data = fs.readFileSync('./index.txt', 'utf-8')

* 异步写入:fs.writeFile('./index123.txt', '你好', function (data) { console.log('写入完成')});

如果按照第一个参数找到文件,就去书写这个文件的内容(覆盖),如果按照第一个参数没有找到文件,就在指定位置新建一个文件,新建文件的值就是第二个参数。

2,内置模块path:node给我们提供的操作路径相关的内容。

常用的方法:join([路径片段1, 路径片段2, 路径片段3])

parse('路径')

rseolve('路径','文件名')

3,内置模块url:node给我们提供帮助解析url地址信息。

url.parse('url地址',是否深度解析(布尔值,true为深度解析,默认为false))

4,内置模块http:node给我们提供开启一个服务器的;

* 创建一个服务器:const server = http.createServer(function(req,res){})

req:表明前端的请求报文;

res:后端返回给前端的响应报文;

* 给服务器配置一个端口号(0~65535);server.listen((8080),()=>{})