NodeJS 进程.env.PORT未定义,打字脚本中出现问题

gzszwxb4  于 2023-01-08  发布在  Node.js
关注(0)|答案(1)|浏览(176)

我刚学会打字。
导入并使用了dotenv包,但仍未定义是否需要为dotenv变量声明接口?

import express,{Application} from 'express';
import bodyParser from 'body-parser';
import  dotenv from 'dotenv';
dotenv.config();

const app : Application = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

console.log(process.env.PORT);   //undefined

app.listen(3000, ()=>console.log(`server started on 

http://localhost:${3000}`));

.env文件

PORT = 3000
SECRET=SOME_SECRET

package.json

{
  "dependencies": {
    "body-parser": "^1.20.1",
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "express-session": "^1.17.3",
    "nodemon": "^2.0.20",
    "ts-node": "^10.9.1",
    "typescript": "^4.9.4"
  },
}
2uluyalo

2uluyalo1#

你不必在Typescript中声明环境变量的接口。你的.env文件相对于你粘贴的Typescript文件位于哪里?
env文件应该在项目的根目录下,和项目的package.json文件在同一个目录下。如果它不在根目录下,或者dotenv无法识别,我建议使用下面的例子来配置dotenv:

dotenv.config( { path: '../relative/path/.env' });

相关问题