TypeError:对象#<ServerResponse>没有方法“发送”

我一直在快速应用程序工作,我刚刚开始得到一个超级奇怪的错误,说TypeError: Object #<ServerResponse> has no method 'send' 。 它开始时,我试图通过由Express提供的路由器为我的应用程序设置一些路由。 我做了一些谷歌search,发现其他人得到的TypeError: Object #<ServerResponse> has no method __ (填空)没有使用Express,或者他们做了奇怪的路由器。 于是,我创build了一个名为app-test.js的新应用程序文件,并删除了所有无关的代码,包括路由器。 不过,我仍然得到相同的错误。 现在我正在设法解决这个问题:

server.js

 var app = require("./app-test"); app.set("port", process.env.PORT || 8000); var server = app.listen(app.get("port"), function () { var host = server.address().address; var port = server.address().port; console.log("Example app listening at http://%s:%s", host, port) }); module.exports.app = app; module.exports.server = server; 

APP-test.js

 var express = require('express'), app = express(), path = require('path'); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.get('/testing', function(req, res) { res.send('Hello World!'); }); module.exports = app; 

我知道Express构build在Node.js的http的ServerResponse对象上。 因此,即使Express没有设置,像.end()这样的某些方法仍然可以工作。 但是,这个问题真的很奇怪,Express的.render()方法仍然正常。

我完全被这个难住了。 任何帮助将不胜感激。

为了解决这个问题,我最终通过npm install重新安装了Express,它解决了这个问题。 我猜测我在重构期间打了一个文件,但没有意识到。