gpt4 book ai didi

javascript - 使用 Node.js 动态 app.get URL 切换大小写?

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

我正在尝试简化一些 Web 服务器代码(Node.js 和 Express),为了简单起见,我只想使用一个 app.get 语句。我试过这个:

app.get(url, function(req, res){
switch(url){
case "/":
res.sendfile('index.html');
res.writeHead(200, {"Content-Type": "text/plain"});
console.log("Client requested /");
break;
case "/profile":
res.sendfile('profile.html');
res.writeHead(200, {"Content-Type": "text/plain"});
console.log("Client requested /profile");
break;
default:
res.sendfile('404.html');
res.writeHead(404, {"Content-Type": "text/plain"});
console.log("Client requested page not found - 404 error");
}
});

但它抛出“引用错误:url 未定义”错误。我是否真的需要将每个可能请求的 URL 编码为第一个参数的字符串文字,并拥有多个 app.get 语句,或者是否有办法使用 switch case 或类似的东西?

最佳答案

您可以执行基于 map 的查找来映射 URL 和资源。将其打包在中间件中 app.use .

app.use(function(req, res){
routes = {
'/': 'index.html',
'/profile': 'profile.html'
};

var url = req.url;

if (routes[url] !== undefined) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.sendfile(route[url]);
console.log("Client requested", url);
} else {
res.writeHead(404, {"Content-Type": "text/plain"});
res.sendfile('404.html');
console.log("Client requested page not found - 404 error");
}
});

关于javascript - 使用 Node.js 动态 app.get URL 切换大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232576/

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