您可以在函数计算中使用Node.js框架编写函数的运行环境信息。
Node.js运行时
函数计算目前支持的Node.js运行时环境如下。
版本  | 标识符  | 操作系统  | 架构  | 
Node.js 20.x  | nodejs20  | Linux(Debian 10)  | x86_64  | 
Node.js 18.x  | nodejs18  | Linux(Debian 10)  | x86_64  | 
Node.js 16.x  | nodejs16  | Linux(Debian 9)  | x86_64  | 
Node.js 14.x  | nodejs14  | Linux(Debian 9)  | x86_64  | 
Node.js 12.x  | nodejs12  | Linux(Debian 9)  | x86_64  | 
函数计算已停止对Node.js 4.4、Node.js 6、Node.js 8.x和Node.js 10.x运行时的支持。具体信息,请参见运行时终止策略。
将请求处理程序指定为ES模块
函数计算从Node.js 18运行时开始支持ECMAScript(ES)模块。在此之前(Node.js 16及以前的版本),函数计算仅支持使用CommonJS模块。
您可以通过以下两种方式将代码指定为 ES 模块。
将函数的
package.json文件中的type指定为module,这种方式会将所有.js文件指定为ES模块。使用
.mjs文件扩展名,这种方式会将.mjs文件视为ES模块,.js文件仍然视为CommonJS模块。您可以通过将文件扩展名分别命名为.mjs和.js来混合ES模块和CommonJS模块,因为.mjs文件始终是ES模块,.js文件始终是CommonJS模块。
Node.js内置模块
除了Node.js的标准模块,函数计算的Node.js运行环境中还包含了一些常用模块,您可以直接引用这些常用模块,目前函数计算包含的常见模块如下所示。
Node.js 20和Node.js 18
模块名称  | 模块介绍  | 版本  | 
co  | 4.6.0  | |
gm  | 1.25.0  | |
ali-oss  | 6.19.0  | |
aliyun-sdk  | 1.12.10  | |
alicloud/fc2  | 2.6.6  | |
tablestore  | 5.4.1  | |
body  | 5.1.0  | |
raw-body  | 2.5.2  | |
ali-mns  | 2.6.8  | |
alicloud/pop-core  | 1.7.13  | 
Node.js 16
模块名称  | 模块介绍  | 版本  | 
co  | 4.6.0  | |
gm  | 1.23.1  | |
ali-oss  | 6.17.1  | |
aliyun-sdk  | 1.12.5  | |
alicloud/fc2  | 2.6.0  | |
tablestore  | 5.2.1  | |
body  | 5.1.0  | |
raw-body  | 2.5.1  | |
ali-mns  | 2.6.8  | |
alicloud/pop-core  | 1.7.12  | 
Node.js 14
模块名称  | 模块介绍  | 版本  | 
co  | 4.6.0  | |
gm  | 1.23.0  | |
ali-oss  | 6.6.0  | |
aliyun-sdk  | 1.12.3  | |
alicloud/fc2  | 2.2.0  | |
tablestore  | 5.0.7  | |
body  | 5.1.0  | |
raw-body  | 2.4.1  | |
ali-mns  | 2.6.8  | |
alicloud/pop-core  | 1.7.9  | |
alicloud/fnf  | 1.1.0  | 
Node.js 12
模块名称  | 模块介绍  | 版本  | 
co  | 4.6.0  | |
gm  | 1.23.0  | |
ali-oss  | 6.6.0  | |
aliyun-sdk  | 1.12.3  | |
alicloud/fc2  | 2.2.0  | |
opencv  | 7.0.0  | |
tablestore  | 5.0.7  | |
body  | 5.1.0  | |
raw-body  | 2.4.1  | |
ali-mns  | 2.6.8  | |
alicloud/pop-core  | 1.7.9  | |
alicloud/fnf  | 1.1.0  |