gpt4 book ai didi

node.js - 如何防止快速服务器从静态文件夹提供 api 路由

转载 作者:行者123 更新时间:2023-12-02 01:08:13 25 4
gpt4 key购买 nike

您好,我需要一些关于 express 如何处理路由的帮助。

在设置我的 express 应用时,我有这样的事情: app.use(express.static('public'));

接下来,我挂载一些 api 路由:

app.use('/api', myrouter);
app.get('*', function(req, res) {
res.sendFile(path.resolve('public/index.html'));
});

但是,当前端通过 api 路由请求数据时,例如在“localhost:3000/api/things”,我在 Express 调试日志中看到,在某些时候(不确定何时)它实际上尝试将此请求作为静态文件提供,例如:

send stat "C:\myproject\public\api\things" +230ms

即使这个文件夹不存在于“public”中并且应该由我的 api 单独处理。仅供引用,/api/things 路由的处理程序仅针对 GET 方法实现,并且在某些时候确实会被调用。

如何阻止 express 服务器也尝试为来自静态文件夹的 api 请求提供服务?

非常感谢。

最佳答案

回答我自己的问题...这似乎是这个问题的重复: `express.static()` keeps routing my files from the route

所以答案是这个:https://stackoverflow.com/a/28143812/8670745

简而言之,安装 api 路由器的 app.use() 声明应该出现在 app.use() 语句的之前,这些语句告诉 express.static 从哪里提供静态文件。这样,后者在 api 路由处理完成后充当一个包罗万象的角色。路由器引擎顺序很重要...

关于node.js - 如何防止快速服务器从静态文件夹提供 api 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506855/

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