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

Node.js程序报错:app.configure is not a function问题咨询

解决Express中app.configure is not a function错误的方案

嘿,这个问题我太熟了!先看看你遇到的情况:

你编写的Express代码如下:

var express = require("express") ,http =require("http"); 
var app = express(); 
app.configure(function(){ 
  app.set("port", process.env.PORT || 3000); 
}); 
app.get("/", function(request,response){ 
  var message = ["<h1>Hello guys</h1>"].join("\n"); 
  response.send(message); 
}); 
app.get("/user/:userId", function(request,response){ 
  response.send("<h1>Hello, user # " + response.params.userId + "."); 
});

运行时碰到了这个错误:

Error:-
app.configure(function(){}); TypeError: app.configure is not a function

问题根源

这个错误是因为你使用的是Express 4.x及以上版本,而app.configure()方法在Express 4版本中已经被官方移除了!这个方法是Express 3及更早版本里用来统一管理不同环境(开发/生产)配置的语法,4.x版本之后官方简化了配置逻辑,不再需要用app.configure()包裹配置代码。

另外顺便提个小细节:你的第二个路由里还有个错误——你用了response.params.userId来获取URL参数,但正确的写法应该是request.params.userId,不修正的话访问/user/xxx路径时也会报错哦。

修正后的完整代码

去掉app.configure()包裹,直接编写配置,同时修复参数获取的问题,最终代码如下:

var express = require("express"),
    http = require("http");
var app = express();

// 直接设置端口,无需app.configure包裹
app.set("port", process.env.PORT || 3000);

app.get("/", function(request, response) {
  var message = ["<h1>Hello guys</h1>"].join("\n");
  response.send(message);
});

app.get("/user/:userId", function(request, response) {
  // 修正为request.params.userId获取URL参数
  response.send("<h1>Hello, user # " + request.params.userId + ".</h1>");
});

// 补充你原代码遗漏的服务器启动逻辑
http.createServer(app).listen(app.get("port"), function() {
  console.log("Express server listening on port " + app.get("port"));
});

补充说明

如果你的项目需要区分不同环境的配置,可以直接通过process.env.NODE_ENV来判断,比如:

if (process.env.NODE_ENV === 'production') {
  // 生产环境专属配置
  app.set('port', process.env.PORT || 80);
} else {
  // 开发环境专属配置
  app.set('port', 3000);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:01:15