Fastify框架实现外部URL重定向的方法及ERR_NAME_NOT_RESOLVED问题咨询
我来帮你解决这两个问题,下面分两部分说明:
如何用Fastify实现跳转到外部页面
你之前的代码里用的是相对路径/empty-cart,Fastify会默认把它当作内部路由去匹配,所以如果你的服务里没有定义这个路由,就会返回404错误。要跳转到外部网页,必须传入完整的HTTP/HTTPS格式的URL,而不是相对路径。
正确的实现代码如下:
fastify.post('/v1/launch', async (req, res) => { // 传入完整的外部目标URL res.redirect('https://my-domain.com/empty-cart'); });
如果你需要指定重定向的状态码(默认是302临时重定向),可以把状态码作为第一个参数传入:
// 301代表永久重定向 res.redirect(301, 'https://my-domain.com/empty-cart');
解决ERR_NAME_NOT_RESOLVED错误
这个错误的核心是你的运行环境(服务器或本地开发机器)无法解析my-domain.com这个域名,也就是DNS查询失败。可以按以下步骤排查:
- 检查域名拼写:先确认
my-domain.com没有拼写错误,比如少打字符、多了点或者大小写错误(虽然域名不区分大小写,但还是要尽量和目标域名完全一致)。 - 测试域名解析能力:在运行Fastify的机器上,用
ping my-domain.com或者nslookup my-domain.com命令测试能不能正常解析到IP地址。如果命令行也返回解析失败,说明是DNS配置的问题。 - 刷新本地DNS缓存:如果是本地开发环境,可以尝试刷新DNS缓存——Windows用
ipconfig /flushdns,Mac/Linux用sudo systemd-resolve --flush-caches(不同发行版可能有细微差别)。 - 检查网络与代理:如果你的机器处于有代理或防火墙的环境下,确认代理配置允许访问该域名,或者防火墙没有拦截DNS请求。
- 等待DNS生效:如果是刚注册或刚修改解析记录的域名,可能还处于DNS全球传播阶段,需要等待几分钟到几小时才能完全生效。
内容的提问来源于stack exchange,提问作者poltorin
相关产品推荐
相关产品推荐

