You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express项目报_dirname is not defined错误及控制台爱心显示问题求解

Express项目问题解决方案

问题1:_dirname is not defined报错

  • 根因:Node.js内置的全局变量是两个连续下划线开头的__dirname,代码中仅写了单个下划线_dirname属于拼写错误。
  • 修复:将静态资源配置行的_dirname修改为__dirname即可。

问题2:控制台无法正确输出PORT值

  • 根因:原打印语句没有将PORT变量插值到输出内容中,爱心标识本身不需要额外配置,只要字符编码正常即可正常显示。
  • 修复:将控制台打印语句改为模板字符串写法,把PORT变量注入输出内容。

额外隐藏问题修正

原代码中express.urlencoded的配置项拼写错误,entended: false应改为extended: false,否则请求体解析配置不会生效。

修正后完整代码

// Require
require('dotenv').config();
const express = require('express');
const ejs = require('ejs');
const path = require('path');
const morgan = require('morgan');
const helmet = require('helmet');
// App
const app = express();
// Middlewares
// Morgan
app.use(morgan('dev'));
// View engine ejs
app.set('view engine', 'ejs');
//Public static folder
app.use(express.static(path.join(__dirname, 'public')));
// Body Parser (replaced with express)
app.use(express.urlencoded({
    extended: false
}));                     
app.use(express.json()); 
// Helmet
app.use(helmet());
// External routes

// Listener
let PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server beating 💓 on PORT ${PORT}`);
})

内容的提问来源于stack exchange,提问作者Omania

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 06:36:09