TypeError: Object #<ServerResponse> has no method 'send'
TypeError: Object #<ServerResponse> has no method 'send'
我一直在开发一个 Express 应用程序,但我刚开始收到一个超级奇怪的错误 TypeError: Object #<ServerResponse> has no method 'send'
。它开始于我试图通过 Express 提供的路由器为我的应用程序设置一些路由。我做了一些谷歌搜索,发现其他获得 TypeError: Object #<ServerResponse> has no method __
(填空)的人要么没有使用 Express,要么在路由器上做了一些奇怪的事情。因此,我创建了一个名为 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 建立在 Node.js 的 http 的 ServerResponse 对象之上。因此,即使未设置 Express,.end()
等某些方法仍然有效。然而,这个问题真正奇怪的是 Express 的 .render()
方法仍然可以正常工作。
我完全被这个难住了。任何帮助将不胜感激。
为了解决这个问题,我最终通过 npm install
重新安装了 Express,它解决了这个问题。我猜我在重构过程中碰到了一个文件,但没有意识到。
我一直在开发一个 Express 应用程序,但我刚开始收到一个超级奇怪的错误 TypeError: Object #<ServerResponse> has no method 'send'
。它开始于我试图通过 Express 提供的路由器为我的应用程序设置一些路由。我做了一些谷歌搜索,发现其他获得 TypeError: Object #<ServerResponse> has no method __
(填空)的人要么没有使用 Express,要么在路由器上做了一些奇怪的事情。因此,我创建了一个名为 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 建立在 Node.js 的 http 的 ServerResponse 对象之上。因此,即使未设置 Express,.end()
等某些方法仍然有效。然而,这个问题真正奇怪的是 Express 的 .render()
方法仍然可以正常工作。
我完全被这个难住了。任何帮助将不胜感激。
为了解决这个问题,我最终通过 npm install
重新安装了 Express,它解决了这个问题。我猜我在重构过程中碰到了一个文件,但没有意识到。