Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sails.js-如何更改Sails使用的node.js模块?_Node.js_Sails.js - Fatal编程技术网

Sails.js-如何更改Sails使用的node.js模块?

Sails.js-如何更改Sails使用的node.js模块?,node.js,sails.js,Node.js,Sails.js,我想编写自己的ejs本地节点模块,但我也希望sails使用我的,我不想更改sailspackages.json 在sails加载了它的ejs locals模块之后,我如何加载我自己的模块来覆盖它 如果有合适的方法来做这类事情,我想知道:) 谢谢 我试图在官方文件中找到答案: 但这一点也不重要 编辑: 我试图在config/views.js中使用fn属性,但它没有按预期工作,我在这里举了一个例子: 最终编辑: 它适用于作为公认答案提出的解决方案,只需确保禁用布局,否则它将扰乱您的配置布局:fa

我想编写自己的ejs本地节点模块,但我也希望sails使用我的,我不想更改sails
packages.json

在sails加载了它的
ejs locals
模块之后,我如何加载我自己的模块来覆盖它

如果有合适的方法来做这类事情,我想知道:) 谢谢

我试图在官方文件中找到答案:

但这一点也不重要


编辑:

我试图在
config/views.js
中使用
fn
属性,但它没有按预期工作,我在这里举了一个例子:


最终编辑:


它适用于作为公认答案提出的解决方案,只需确保禁用
布局
,否则它将扰乱您的配置<代码>布局:false

尝试在config/views.js文件中配置您的视图引擎

...

ext : 'ejs',
fn: require('ejs-locals')

...
rigth配置为:

view: {
    engine: {
       ext: 'ejs',
       fn: yourfunction
   },
   // need to disabe sails.js default partials feature for dont auto load sails ejs-locals
   partial: false
}

您可以使用npm包络处理


然后编辑
npm shrinkwrap.json
并在sails部分,将ejs或ejs lorals指向您的版本

这是使用sails 0.9吗?我想是0.10。我用一个.hbs引擎和sails 0.10测试了这个配置,但我不知道它是否适用于sails 0.9视图配置逻辑:在
0.9
中似乎没有任何效果,我尝试了
fn:“test”
来触发一个错误,它可以工作,所以我想这在0.10中是新的。感谢您的提示。它似乎不起作用,如果起作用,我不知道如何检查。它不起作用,sails仍在使用自己的
ejs locals
。一个临时的解决方案是用我自己的
node\u模块/sails/node\u模块/ejs局部变量
,效果很好。我只是一点也不喜欢。我已经尝试并更新了我的实验,但仍然不起作用。检查此拉动请求。。。这将解决问题你是对的,它确实有效。我理解,因为
layout
被设置为true,然后Sails load
ejs locals
本身,因为它假设我们使用ejs。但这是错误的。这里的核心是需要更改的内容,如果存在,应该加载我们的
fn