Javascript 为什么单击next.js`Link`只调用API端点,然后导航到正确页面时,我会得到一个404,持续半秒?
你好 我在这里遵循了以下指南:(将auth with passport添加到next.js) 我有一个简单的问题 当我点击next.js的“/login”链接时,我可以看到这个错误大约200毫秒: 请求URL: 请求方法:获取 状态代码:404未找到 然后它会自动重定向到主页的根目录,因为它随后已成功通过身份验证(使用passport facebook) 我仍然在问,为什么我会在短时间内看到这个错误 这里是客户端链接: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
{!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”)代码>这行怎么样?你在哪里看到这行?我在教程中找到的。你不是在做与教程中相同的事情吗