Node学习笔记——one:node介绍+模块化

Node是什么

Node是一个基于Chrome V8引擎的JavaScript代码运行环境

Node.js的组成

JavaScript由:ECMAScript,DOM,BOM,

Node.js由ECMAScript及Node环境提供的一些附加API组成,包括文件、网络、路径

Node下载:直接去官网找安装包下载即可
Node官网

内置对象介绍

分类

全局对象:何时何处都能访问

核心对象:向系统索要,引入即可使用

自定义对象:按路径引入即可

process(全局对象)
  • process.env是一个对象,我i们可以通过其属性名来获取具体的环境变量值

    ​ 设置一个特定的环境变量以简单区别不同的机器,从而针对生产/开发环境运行不同的效果

  • process.argv获取命令行参数

命令行的命令:set可以查看系统变量

应用上,在本机,和真实的服务器上应该有区别

区分不同的机器做不同的效果

filename/dirname(全局变量)
  • __filename 获取当前运行的文件的目录,绝对路径
  • __dirname 当前运行文件的绝对路径
node.js实现规范
  • CommonJS:规范JavaScript语言作为后端语言运行的标准
  • 具备什么能力
  • 模块该怎么写:Moudle
    • 依赖一个模块,require
    • 需要被模块依赖 module.exports = 给外部的数据
    • 一个文件是一个模块
核心对象path

1、引入

const path = require('path');

2、路径 -> 在处理路径的时候很擅长,其不负责判断路径是否存在文件

3、拼接并修正路径 path.join(__dirname,‘a’ ,‘b’)

4、接收一个合法的路径字符串,就换成一个对象

​ path.parse

方便以对象的方式操作路径

5、接收一个路径对象,转换成一个字符串路径

​ path.format

6、path.resolve:相对路径转绝对路径

let patha = path.parse(mypath);
pathb.base = 'mick';
mypath = path.format(patha);

base 可以作为修改文件名,或者后缀名的方式

node.js

https://nodejs.org/dist/latest-v14.x/docs/api/

JavaScript的弊端

文件依赖和命名冲突

软件的模块化开发

一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他模块的运行

Node.js的模块化规范

Node.js规定了一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到

模块内部可以用exports对象进行成员导出,使用require方法导出其他模块

导入模块时的后缀可以省略(.js)

另一种方式:module.exports

exports是module.exports的别名,如果两个同时指向一个变量,以module.exports为准

系统模块

node运行环境提供的API,因为这些API都是以模块化的方式进行开发的。

系统模块 : fs 文件操作

  • 文件读写
  • 其他功能
  • 扩展介绍

f:file文件,s:system系统

读取文件内容

异步读取:不阻塞后续代码

fs.readFile(“文件路径/文件名称”[,‘文件编码’],callback);callback:回调函数,获取文件的读取结果

同步读取

fs.readFileSync(文件路径)
//读取上一级css下的文件

fs.readFile("../css/base.css","utf-8"  (err,doc) => {
    
    
//如果文件读取发生错误,参数err的值为错误对象,否则err为null
//doc为文件内容if(err == null){
    
    
​		console.log(doc);}
})

注意:读取文件是硬盘的操作,需要调用回调函数

写入文件内容

输出到文件夹中

异步读写

fs.writeFile(‘文件路径/文件名称’, ‘写入的数据’,[flag:a}(追加),callback);

追加方式:appendFile(‘path’,'data’,callback);

同步读写

fs.writeFileSync(文件路径)

I :input

对计算机来说,就是输入

O:output

对计算机来说,展现/写入数据就是输出

系统模块 path 路径操作

路径拼接符

为什么?不同操作系统的路径的分隔符不一致

语法:

path.join('路径','路径',...);

//导入path

const path = require('path');

const finalpath = path.join('public','uploads','avatar');

console.log(finalpath);
相对路径vs绝对路径

大多数情况下,使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录

在读取或设置文件路径的时候都选择绝对路径

使用__dirname获取当前文件所在的绝对路径,然后再拼上当前要操作的文件名

猜你喜欢

转载自blog.csdn.net/leilei__66/article/details/115268207