【问题标题】:app.configure(function){} typeerror undefined is not a functionapp.configure(function){} typeerror undefined is not a function
【发布时间】:2023-10-19 14:38:01
【问题描述】:

我正在使用 socket.io 和 angularjs 创建一个聊天应用程序,当我使用 cmd 运行 app.js 文件时,我收到一条错误消息“app.configure(function){} typeerror undefined is not a function” 可能是什么问题?

我的代码如下所示:

  var http = require('http');
  var express = require('express'),
   routes = require('./routes'),
   socket = require('./routes/socket.js');
      app = module.exports.app = express();
 var server = http.createServer(app);
 var io = require('socket.io').listen(server);  //pass a http.Server                      instance
   server.listen(80);

// 配置

  app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.set('view options', {
   layout: false
   });
  app.use(express.bodyParser());
   app.use(express.methodOverride());
   app.use(express.static(__dirname + '/public'));
    app.use(app.router);
      });

【问题讨论】:

  • 您能说明一下您使用的是哪个版本的 Express 吗?由于 Express 4.x 没有 app.configure() - expressjs.com/guide/migrating-4.html#other-changes app.configure() has been removed. Use process.env.NODE_ENV or app.get('env') to detect the environment and configure the app accordingly. 如果您下次提供完整的堆栈跟踪,它也会有所帮助。
  • 把这条线 app = module.exports.app = express() 改成 app = express() 看看是否有效

标签: javascript angularjs node.js express


【解决方案1】:

我使用的是 Express 4.0,其中删除了配置。见http://expressjs.com/guide/migrating-4.html#other-changes 我花了一个小时才意识到一个简单的错误。

【讨论】:

  • 这里有什么解决方案来支持configure()函数的等价物?
  • 直接调用app.use即可