一文详解Node中的模块化、文件系统与环境变量

1. 模块化

Node.js是基于模块化设计的,通过模块化可以使得代码清晰可读、易于维护、易于测试。在Node.js中,有以下几种模块的导出方式:

1.1 CommonJS规范

在Node.js中引入其他模块使用的是CommonJS规范,它有四个重要的API,分别是:

require():用于加载模块。

exports:用于导出模块。

module.exports:用于导出模块。

__filename:当前模块的文件名。

在Node.js中,每个文件就是一个模块,可以通过 require() 来引入其他模块。

const add = require('./add.js');

console.log(add(1, 2));

1.2 ES6模块化

Node.js 也支持 ES6 模块化

import add from './add.js';

console.log(add(1, 2));

2. 文件系统

在Node.js中,提供了丰富的文件系统操作,可通过fs模块实现,它有以下几个常用API:

fs.writeFile(file, data[, options], callback):写文件。

fs.readFile(path[, options], callback):读文件。

fs.appendFile(path, data[, options], callback):追加文件。

fs.unlink(path, callback):删除文件。

fs.mkdir(path[, options], callback):创建目录。

fs.rmdir(path, callback):删除目录。

需要注意的是文件系统操作都是异步操作,需要使用回调函数获取结果。

// 写文件

const fs = require('fs');

fs.writeFile('test.txt', 'hello world', function(err) {

if(err) {

console.log(err);

}

console.log('文件写入成功!');

});

// 读文件

fs.readFile('test.txt', 'utf8', function(err, data) {

if(err) {

console.log(err);

}

console.log('读取文件成功!' + data);

});

3. 环境变量

在Node.js中,可以通过 process 对象的 env 属性获取当前进程的环境变量。

console.log(process.env);

在开发中,可以通过环境变量来配置不同环境下的参数,比如:

const env = process.env.NODE_ENV;

const temperature = env === 'production' ? 0.5 : 0.8;

console.log(`temperature: ${temperature}`);

在这个例子中,根据环境变量的不同,设置不同的 temperature 值,用于控制程序运行时的温度。