【问题标题】:SailsJS and global functions, variablesSailsJS 和全局函数、变量
【发布时间】:2014-08-26 04:31:13
【问题描述】:

只是想知道如何在 SailsJS 中拥有一个可随处访问模型、控制器等的对象。我需要这个主要用于我经常使用的一些实用程序功能。你认为这是个好主意吗?

编辑:推荐的方法是什么

【问题讨论】:

  • 然后创建一个全局 utils 对象或使用 require 或将其隐藏为另一个全局的属性。
  • 推荐的方法是什么,是否只需进入 bootstrap.js 并执行:global.utils = require('lib/utils'); ?

标签: javascript node.js sails.js


【解决方案1】:

请参阅 Sails 文档中的 documentation for Services。它们听起来正是您正在寻找的东西 - 全球化的自定义模块,可在您的应用中使用。

【讨论】:

  • 我尝试创建一个 _.js 服务,该服务在较新版本的 lodash 中加载到 SailsJS 中,但它失败了 - 可能是因为我不知道如何将所有函数从 lodash 加载到 module.exports = { ... } 符号。很高兴看到像 lodash 这样的全球化示例,尤其是与 SailsJS 的 v2.x 版本的 lodash 不冲突。
  • 您应该能够使用globals configuration 关闭默认的 Lodash 全局。如果您想使用 Sails 服务全球化您自己的版本,您可以将服务设置为 module.exports = require('lodash')
  • 感谢 sgress454。我确实尝试过,创建 _.js 然后创建 lodash.js,但它在sails-build-dictionary/index.js 第120行失败:module.identity = module.identity.toLowerCase(); TypeError '未定义不是函数'。
  • 啊,那是因为 Lodash 有一个名为 identity 的方法,并且 Sails 中的模块加载器期望 identity 是一个可选值,您可以提供它来更改模块(不用于服务,但对模型很重要)。只要您不打算使用 Lodash 的 identity 方法,您就可以使用 module.exports = require('lodash'); delete module.exports.identity,它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-02
相关资源
最近更新 更多