Fastify 路线不适用于特定 url

Fastify route not working with specific url

我的代码中有这个路由器

fastify.get('/:link', (req, reply) => {
    req.params.url = req.host+req.url;
    reply.view("template.ejs",req.params);

});

我正在尝试捕获 URL 并在模板中处理它们。网址全部 encodeURIComponent 转义。出于某种原因,某些 URL 会 return 找不到 404,我不确定为什么。 这是有效的 link。

http://127.0.0.1:3000/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fe%2Fee%2FChain_link_icon.png

这是一个没有用的。

http://127.0.0.1:3000/https%3A%2F%2Fs7386.pcdn.co%2Fwp-content%2Fuploads%2F2016%2F07%2Fadd-on-direct-link-tracking-771x386.png

错误是


{
"message": "Route GET:/https%3A%2F%2Fs7386.pcdn.co%2Fwp-content%2Fuploads%2F2016%2F07%2Fadd-on-direct-link-tracking-771x386.png not found",
"error": "Not Found",
"statusCode": 404
}

我正在使用 windows 10 节点 v12.8.0 和 fastify 2.8.0

原因是 URL 超过 100 个字符,出于某种原因这是最大值。

可以使用 maxparamlength. I also asked here 更改它,希望将来可以更改该错误。

您可以使用类似下面的方法来扩展 fastify 中路径参数的最大长度:

import * as fastify from 'fastify';

fastify.default({
  maxParamLength: 1000,
});