gpt4 book ai didi

javascript - NodeJS - response.send() 不是函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:06 25 4
gpt4 key购买 nike

我有一个简单的 Nodejs 应用程序,如果网址无效,我会尝试发送“找不到页面”消息。

const http = require("http");
const port = 4098;

let app = http.createServer((request, response) => {
let url = request.url;

switch (url) {
case "/":
getStaticFile(response, "./public/home.html");
break;
case "/contact":
getStaticFile(response, "./public/contact.html");
break;
default:
response.send("Oops...Page Not Found!");
break;
}
});

function getStaticFile(response, pathToFile) {
fs.readFile(pathToFile, function(error, data) {
if (error) {
response.writeHead("500", { "Content-Type": "text/plain" });
response.end("500 - Internal Server Error");
}
if (data) {
response.writeHead("200", { "Content-Type": "text/html" });
response.end(data);
}
});
}

app.listen(port, () => {
!console.log(`Listening to connections on port ${port}`);
});

我正在将响应传递给 getStaticFile,但我收到了一个响应。send() 不是一个函数。我的问题可能是什么?

最佳答案

您可能已经基于 http 模块创建了一个 HTTP 服务器。

response 是一个 http.ServerResponse 实例,没有 .send 方法。不过,正如您所发现的,它确实有一个 .end 方法。

我的猜测是您已经看到了一些 Express 代码。 Express 是一个构建 HTTP 服务器的框架,它在常规 http 模块之上提供了附加功能。

这些附加功能之一是 HTTP 响应实例的 .send 方法:

var express = require('express'); 
var app = express();
var server = app.listen(3000);

app.get('/', function(request, response) {
response.send('hello world!');
});

关于javascript - NodeJS - response.send() 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53556939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com