为什么我在重定向用户时收到错误 "me is not defined"?

Why am I getting the error "me is not defined" when redirecting the user?

当用户登录并使用退出 viewTemplatePath 发送到页面时,我收到错误 me is not defined

错误发生在 header.ejs 模板 <% if(me) { %> 中,它是 Sails V1.0 的样板文件。

me是在使用重定向类型时定义的:

exits: {
  success: {
    responseType: 'redirect',
    redirect: '/pages/user-profile',
    description: 'User successfully logged in.'
  }, 
}

me定义模板渲染时未定义:

exits: {
  success: {
    viewTemplatePath: 'pages/user/profile'
    description: 'User successfully logged in.'
  },
}

Sails v1.0 样板文件

这个问题有几个解决方案,none 令人满意,因为这个问题 "seemingly" 的一致性很差。有时 viewTemplatePaththis.req.me 作为 me 传递给模板,有时则不会。

方案一:将用户数据传递到模板路径

return exits.success({me: this.req.me});

方案二:使用重定向方式

解决方案 3: 在退出到 viewTemplatePath 之前检查用户并将我作为任何值类型传递以不公开用户数据。

fn: async function (inputs, exits) {

  if(!this.req.me) throw {redirect:'/'};

  return exits.success({me: true});

}