如何解决Node.js与Express.js中process.loadEnvFile()不是函数的报错?
解决process.loadEnvFile()不是函数的问题
出现这个报错的核心原因是:process.loadEnvFile()是Node.js v20.6.0及以后版本才新增的内置API,你的Node.js版本低于这个版本的话,就会触发这个错误。下面给两种解决办法:
办法一:升级Node.js版本
- 先查自己当前的Node.js版本,在终端运行:
node -v - 如果版本低于v20.6.0,直接升级到该版本或更高(可以用nvm、n工具或者官方安装包升级)
- 升级完成后,原代码里的
process.loadEnvFile()就能正常调用了,默认会加载项目根目录的.env文件,也可以指定自定义路径:process.loadEnvFile('./config/.env')
办法二:用dotenv包兼容低版本Node.js
如果不想升级Node.js,就用社区维护的dotenv包来加载环境变量:
- 安装dotenv:在终端运行
npm install dotenv - 修改代码,把dotenv的配置放在最顶部:
import dotenv from 'dotenv'; dotenv.config(); import express, { json } from 'express'; const app = express(); app.use(json()); const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Listening on ${port}`));
要是你的项目用的是CommonJS语法(用require导入),就改成这样:
require('dotenv').config(); const express = require('express'); const app = express(); app.use(express.json()); const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Listening on ${port}`));
另外要注意:项目根目录得有.env文件,内容格式是键=值,比如PORT=3001,这样才能正常读取到环境变量。
内容的提问来源于stack exchange,提问作者AYUSH RAI
相关产品推荐
相关产品推荐

