【问题标题】:Disable some built-in functionality in Sails.js禁用 Sails.js 中的一些内置功能
【发布时间】:2015-03-16 22:36:00
【问题描述】:

我正在使用 Sails.js 0.10 作为框架开发 REST API 后端应用程序。此应用程序将是严格的 REST,身份验证将使用 oAuth 持有者令牌实现。所有响应都将采用 JSON 格式。

考虑到这一特定要求,我不需要将某些功能嵌入到 Sails.js 中,并且我想将其从我的应用程序中删除(这样它会在没有多余代码的情况下运行得更快)。

所以,我的问题是:如何禁用以下内置功能?

  • 蓝图
  • 静态
  • Cookie
  • 会话
  • 观看次数
  • WebSocket
  • CSRF
  • i18n

还有哪些在我的用例中不需要的可以禁用?

关于这个特定问题的文档有点支离破碎。描述了每个模块的所有配置选项,但没有关于如何禁用和/或从应用程序中删除此类模块的信息。

【问题讨论】:

    标签: javascript node.js sails.js


    【解决方案1】:

    铁杆!您需要禁用几个钩子,以及一些中间件。首先,在您的.sailsrc 文件中,设置:

    "hooks": {
      "session": false,
      "sockets": false,
      "pubsub": false,
      "views": false,
      "csrf": false,
      "i18n": false,
      "blueprints": false
    }
    

    然后在你的config/https.js:

    middleware: {
      order: [
        'startRequestTimer',
        // 'cookieParser',
        // 'session',
        'bodyParser',
        'handleBodyParserError',
        'compress',
        'methodOverride',
        'poweredBy',
        '$custom',
        'router',
        // 'www',
        // 'favicon',
        '404',
        '500'      
      ]
    }
    

    这应该会让你上路。

    【讨论】:

    • 谢谢@sgress454!但是,当相应的钩子被禁用时,不应该自动禁用中间件吗?还有什么我可以禁用的东西让我的设置更轻吗?在哪里可以找到内置挂钩和中间件的完整列表和说明?有这方面的文件吗?再次感谢!
    • Express 中间件和 Sails 挂钩并有意分开。前者提供额外的低级功能,主要是通过添加到reqres 对象或Express 路由器。后者通过使事情更具可配置性或添加新功能来扩展 Sails 功能。中间件在 Sails 文档here 中列出;尽管它们所代表的大多数功能都有自己的文档部分,但目前还没有默认挂钩的好文档。
    • 我明白了,谢谢你的解释。是否也可以禁用静态中间件:sailsjs.org/#/documentation/concepts/Assets?q=static-middleware 和蓝图?我在配置应用程序时正在写一篇文章。我认为我在这方面的经验将对社区做出很好的贡献 = )
    • @SlavaFominII 你可以使用 skipAssets 路由选项:sailsjs.org/documentation/concepts/routes/…
    • @sgress454 你有这个答案吗? stackoverflow.com/questions/44838905/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    相关资源
    最近更新 更多