【问题标题】:express.static(): "Undefined is not a function"express.static(): "未定义不是函数"
【发布时间】:2015-06-27 06:38:02
【问题描述】:

谷歌搜索了一段时间以找到这个问题的答案,但我仍然无法在我的代码中找到问题。我正在尝试制作我的第一个 Socket.io 应用程序,它只是在用户连接时向控制台输出一条消息。

这是我从 Node.js 得到的错误:

这是我的源代码:

var port = process.argv[2];

var express = require('express');
var app = express();
var path = require('path');

app.get('/', function(req, res) {
  res.render('index.ejs');
})
.use(app.static(path.join(__dirname, '/public')));

var io = require('socket.io')(app.listen(port));

io.on('connection', function(socket) {
  console.log('Someone connected');
});

console.log('Listening on port ' + port);

提前感谢您的建议!

【问题讨论】:

标签: javascript node.js express socket.io


【解决方案1】:

变化:

.use(app.static(path.join(__dirname, '/public')));

收件人:

.use(express.static(path.join(__dirname, '/public')));

【讨论】:

  • 嗯,有时最愚蠢的错误在你的眼皮底下是最难发现的,“隐藏”在 18 行代码中哈哈。我现在觉得有点傻,但是是的,非常感谢!
  • 没必要觉得自己很傻。我们都这样做!我正在调试我目前编写的 npm 包的问题。所有测试都通过了,但在生产中失败了!我敢肯定这会很愚蠢......
【解决方案2】:

我尝试了以上所有答案,但对我没有用。然后我尝试使用“npm install -g express-static --save”安装 express-static。并在如下代码中使用,

var pathComp= require("express-static");
app.use(pathComp(__dirname+"/client"));

虽然它是一个旧线程,但分享这个。 如需更多参考,请访问https://www.npmjs.com/package/express-static

【讨论】:

  • 那是因为那些答案是旧的。当时是正确答案,但现在static 是一个不同的模块,而不是express 的一部分。
猜你喜欢
  • 1970-01-01
  • 2014-06-04
  • 2016-10-04
  • 2018-05-14
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多