路由参数中的 Sails.js 点

kai*_*ris 4 sails.js

我正在尝试使这条路线起作用

items/images/myimg.jpg
Run Code Online (Sandbox Code Playgroud)

它响应 404 但与

items/images/myimg
Run Code Online (Sandbox Code Playgroud)

也适用于

items/images/myimg.jpg/
Run Code Online (Sandbox Code Playgroud)

我尝试了以下路由器配置

'get /items/images/:imageName': {
  action: 'items/images/find',
  skipAssets: true,
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果我设置,skipAssets: false那么响应将是未经授权的。我有以下 ACL

'*': false,
'items/images/find': 'isLoggedIn',
Run Code Online (Sandbox Code Playgroud)

在 isLoggedIn.js 策略中,即使用户拥有有效会话,req.session 也是未定义的。

如果我设置'items/images/find': true它会工作,但我想要这条路线的访问控制。

kai*_*ris 6

路线应该这样设置:

'get /items/images/:imageName': {
  action: 'items/images/find',
  skipAssets: false,
}
Run Code Online (Sandbox Code Playgroud)

这个方法应该添加到config/session.js 中:

isSessionDisabled: function (req){
  // Allow session for all item image requests.
  if (req.path.match(/^\/items\/images\//) { 
    return false; 
  }
  // Otherwise, disable session for all requests that look like assets.
  return !!req.path.match(req._sails.LOOKS_LIKE_ASSET_RX);
}
Run Code Online (Sandbox Code Playgroud)

更多内容可以在这里阅读:https : //github.com/balderdashy/sails/issues/4216#issuecomment-337613995