首页 > 解决方案 > codewithmosh NodeJS 课程几次要求我更改我的 NODE_ENV - 在 Windows 上不起作用?

问题描述

我现在正在学习“使用 mosh 编写代码”的 NodeJs 课程,并尝试更新我的 NODE_ENV 环境变量但没有成功……每次我在 CMD 甚至 Windows PowerShell 中更新它时,它似乎都做到了,然后什么也没有发生在课程中的 NodeJS Express Demo 构建中。我想我要问的问题是,你如何配置你的 ENV VAR?

编辑:谢谢你的回答,它确实改变了我的 NODE_ENV。但是摩根中间件由于某种原因仍然启动......这是代码:

const app = express();
const Joi = require('joi');
const helmet = require('helmet');
const morgan = require('morgan');
const config = require('config');
const dotenv = require('dotenv')
dotenv.config()

const logger = require('./logger');

console.log(`NODE_ENV: ${process.env.NODE_ENV}`);
console.log(`app ${app.get('env')}`);

app.use(express.json());
app.use(express.urlencoded({ extended: true }))
app.use(express.static('public'));
app.use(helmet());

if (app.get('env') === 'development') {
    console.log('morgan is Enabled');
    app.use(morgan('tiny'));
}```

标签: node.js

解决方案


您需要的解决方案非常简单。

首先,您需要安装 Dotenv。你可以通过“npm install dotenv”来做到这一点

其次,您将在项目的根目录(与 package.json 文件相同的目录)中创建一个名为“.env”的文件

第三,您将在 .env 文件中放置这行代码(不要使用引号):“NODE_ENV = development”

注意,这里没有使用分号。

这是我的一个项目中的一个示例,说明我如何使用它。请注意,我确实在最新版本的 Node 中打开了模块,因此我的导入语句看起来与您可能习惯的不同......

import express from "express";
import colors from "colors";
import dotenv from "dotenv";
import morgan from "morgan";
import connectDB from "./config/db.js";
import { notFound, errorHandler } from "./middleware/errorMiddleware.js";

dotenv.config();

// Connect Database
connectDB();

const app = express();

// Middleware
// Only run Morgan in development mode
if (process.env.NODE_ENV === "development") {
    app.use(morgan("dev"));
}
app.use(express.json());

// Routes
app.get("/", (req, res) => {
    res.send("API is online...");
});

// Error and 404 handling Middleware
app.use(notFound);
app.use(errorHandler);

// Start server
const PORT = process.env.PORT || 5000;
app.listen(PORT, console.log(`Server is running on port ${PORT}`.green.bold));

推荐阅读