作者:漠然粉蔷薇778 | 来源:互联网 | 2022-11-27 17:27
我有一个简单的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但是我得到了一个response.send()不是函数.可能是我的问题?
1> 小智..:
您可能已经基于http模块创建了一个HTTP服务器.
响应,它是一个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!');
});