📅  最后修改于: 2023-12-03 15:21:54.175000             🧑  作者: Mango
有时候在开发中,我们需要从 URL 中删除文件的后缀名,例如 .html。在 Express.js 中,我们可以使用中间件函数来实现这一功能。
我们可以使用 path.parse()
方法来获取 URL 中的文件名和扩展名,并从 req.url
中删除扩展名。以下是实现此功能的示例代码:
const express = require('express');
const path = require('path');
const app = express();
app.use((req, res, next) => {
const parsedUrl = path.parse(req.url);
if (parsedUrl.ext === '.html') {
const newPath = path.join(parsedUrl.dir, parsedUrl.name);
req.url = newPath;
}
next();
});
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
在上面的代码中,我们首先使用 path.parse()
方法来解析 URL,获取文件的扩展名。如果扩展名是 .html,我们将使用 path.join()
方法来构建新的 URL,不包含文件的扩展名,并将其赋值给 req.url
。最后,我们将调用 next()
方法,将控制权传递给下一个中间件或路由处理程序。
上面的代码演示了如何在 Express.js 中删除 URL 中的文件扩展名。这可以用于更好的 SEO,或者对于服务器中的 URL 可读性。希望这篇文章对你有所帮助!