Sails.js 路由参数中的点

标签 sails.js

我正在尝试让这条路线发挥作用

items/images/myimg.jpg

它响应 404 但可以使用

items/images/myimg

也适用于

items/images/myimg.jpg/

我尝试了以下路由器配置

'get /items/images/:imageName': {
  action: 'items/images/find',
  skipAssets: true,
}

编辑:

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

'*': false,
'items/images/find': 'isLoggedIn',

在 isLoggedIn.js 策略中,即使用户具有有效 session ,req.session 也未定义。

如果我设置'items/images/find': true它将起作用,但我想要对此路由的访问控制。

最佳答案

路线应该这样设置:

'get /items/images/:imageName': {
  action: 'items/images/find',
  skipAssets: false,
}

此方法应添加到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);
}

可以在此处阅读有关此内容的更多信息: https://github.com/balderdashy/sails/issues/4216#issuecomment-337613995

关于Sails.js 路由参数中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706076/

相关文章:

javascript - 为什么 lodash 'some' 函数不能按预期工作?

database - sails .js : Is Waterline ORM safe without foreign key constraints?

javascript - 使用 ember 数据和 sails.js 时获取空记录

node.js - Passport 反序列化用户未在 sails 中调用

sails.js - 如何使用 Waterline ORM 为 Sails 模型中的字段设置默认值?

javascript - Sails.JS - 获取数据库中对象/行的数量

javascript - 如何在 Sails.js 应用程序中禁用或替换 X-Powered-By header

node.js - 如何在 SailsJS/Waterline 适配器方法中获取 DB 对象?

javascript - 如何使用不同表中的列数据从其他表中获取数据?

node.js - Sails.js - 如何跨多个 Controller 操作重用(大部分)此代码?