Node.js router.param未触发passport.js在app.use中初始化

Node.js router.param未触发passport.js在app.use中初始化,node.js,express,passport.js,Node.js,Express,Passport.js,我已经建立了一个相当直接的Node Express路由应用程序,我刚刚在其中添加了passport.js身份验证。我现在正试图将其与现有路线整合 我运行以下基本中间件: app.use(passport.initialize()); app.use(passport.session()); 然后如果我运行一个简单的 app.get('/route', (req, res)=>{ console.log(req.user) }); 我得到了打印登录用户的预期结果。到目前为止还不错

我已经建立了一个相当直接的Node Express路由应用程序,我刚刚在其中添加了passport.js身份验证。我现在正试图将其与现有路线整合

我运行以下基本中间件:

app.use(passport.initialize());
app.use(passport.session());
然后如果我运行一个简单的

app.get('/route', (req, res)=>{
    console.log(req.user)
});
我得到了打印登录用户的预期结果。到目前为止还不错

然而,我现在正试图在我设置的一些子路由中访问这个req.user。在第一条路线中,我尝试的第一步是引入一个参数,并将其与req.user进行比较:

app.use('/route/:userId', idRouter);
然后:

idRouter.param("userId", async (req, res, next, userId) => {
  console.log(userId)
  console.log(req.user.id)
})
此路由触发并打印出参数,但req.user未定义。我看不出为什么会这样

为了帮助调试,我在反序列化函数中添加了一些日志记录,我可以看到当我点击idRouter时它没有被调用。我不明白为什么会出现这种情况,因为它在app.use函数中,每次都应该调用它


救命啊

我最终解决了这个问题,这是CORS的问题。只需要在API调用中包含凭据。

显示
idRouter的声明