Javascript 为什么单击next.js`Link`只调用API端点,然后导航到正确页面时,我会得到一个404,持续半秒?

Javascript 为什么单击next.js`Link`只调用API端点,然后导航到正确页面时,我会得到一个404,持续半秒?,javascript,node.js,reactjs,next.js,Javascript,Node.js,Reactjs,Next.js,你好 我在这里遵循了以下指南:(将auth with passport添加到next.js) 我有一个简单的问题 当我点击next.js的“/login”链接时,我可以看到这个错误大约200毫秒: 请求URL: 请求方法:获取 状态代码:404未找到 然后它会自动重定向到主页的根目录,因为它随后已成功通过身份验证(使用passport facebook) 我仍然在问,为什么我会在短时间内看到这个错误 这里是客户端链接: {!user && ( <Link h

你好

我在这里遵循了以下指南:(将auth with passport添加到next.js)

我有一个简单的问题

当我点击next.js的“/login”链接时,我可以看到这个错误大约200毫秒:

请求URL: 请求方法:获取 状态代码:404未找到

然后它会自动重定向到主页的根目录,因为它随后已成功通过身份验证(使用passport facebook)

我仍然在问,为什么我会在短时间内看到这个错误

这里是客户端链接:

{!user && (
        <Link href="/login">
          <a>Log In</a>
        </Link>
      )}
router.get("/login", passport.authenticate("facebook"));

router.get("/callback", (req, res, next) => {
  passport.authenticate("facebook", (err, user) => {
    if (err) return next(err);
    if (!user) return res.redirect("/login");
    req.logIn(user, err => {
      if (err) return next(err);
      res.redirect("/");
    });
  })(req, res, next);
});
是什么触发了此错误?

我猜: 因为我使用了next.js中的“Link”组件,所以应用程序试图找到一个名为“Login.js”的页面。由于它不存在,因为它只是一个服务器api,所以显示了该错误。如果我是对的,如何摆脱它? 伙计们

到目前为止,我尝试了什么: 我刚在他们的文档中发现:


但这破坏了应用程序,因为它无法解析任何页面。我猜不是这样的:D

我没有使用
链接,而是使用

我不知道这是否是正确的方法,所以我不会投票赞成解决这个问题。也许有人可以详细说明这是否是正确的方法

这就是我的导航现在的样子:

<div>
      <Link href="/">
        <a>Thoughts!</a>
      </Link>
      {user && (
        <>
          <Link href="/share-thought">
            <a>New Thought</a>
          </Link>
          <Link href="/profile">
            <a>Profile</a>
          </Link>

            <a href="/logout">Logout</a>

        </>
      )}
      {!user && <a href="/login">Log In</a>}
    </div>

)}
{!用户&}

(注销也不使用
链接
,因为我在这里也遇到了这个问题,我想也是因为
页面
文件夹中没有Logout.js)

可能是因为
如果(!user)返回res.redirect(“/login”)我刚刚测试了它,完全消除了该行,但仍然存在相同的问题。
如果(!req.isAuthenticated())返回res.redirect(“/login”)这行怎么样?你在哪里看到这行?我在教程中找到的。你不是在做与教程中相同的事情吗