Javascript 如何正确引用另一个EJS文件中定义的EJS函数?

Javascript 如何正确引用另一个EJS文件中定义的EJS函数?,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,文件1:ejsfunction.ejs <% function funcTest() {return 42;} %> <% include ejsfunction.ejs %> <% funcTest(); %> 文件2:file.ejs <% function funcTest() {return 42;} %> <% include ejsfunction.ejs %> <% funcTest(); %>

文件1:ejsfunction.ejs

<% function funcTest() {return 42;} %>
<% include ejsfunction.ejs %>
<% funcTest(); %>

文件2:file.ejs

<% function funcTest() {return 42;} %>
<% include ejsfunction.ejs %>
<% funcTest(); %>

输出:

ReferenceError:
    1| <% include ejsfunction.ejs %>
 >> 2| <% funcTest(); %>
funcTest is not defined
ReferenceError:
1| 
>> 2| 
未定义funcTest
您好,我正在处理一个node.js/express项目,试图将一些函数从一个ejs文件重构到另一个文件中,然后使用include指令将它们重新加载。不幸的是,我做了一些错误的事情,因为我不断地在上面的代码中得到一个ReferenceError

有人能告诉我我做错了什么吗


非常感谢!丹。

过了一段时间,我还没有想出如何做我最初的提问,但我找到了一个解决办法

如果你想把常用函数分解成一个单独的部分,你可以-你不能从该部分文件之外调用这些函数

所以,诀窍是,从部分本身调用函数,并“就地”输出结果。然后,只需在您希望在HTML中使用输出的EJS/HTML中包含分部代码

两位最初的评论者一直都是正确的(谢谢你,阿瓦亚克奇)——我当时只是不理解答案

由于无法将参数“传递”给分部,因此需要处理从渲染函数传入的“全局”


当我有时间的时候,我会发布一个真实的代码示例。

我不确定EJS是否支持这样调用函数。目前我看不到任何这样的例子。看起来你必须把函数变成一个模板,并在你想“调用”它的地方包含它。实际上我已经在我的项目中使用了partials,这很好。但是,我没有引用第二个文件中这些部分中的任何函数。只是澄清一下:在我上面非常简单的示例中,看起来我可以从我的常规javascript代码将函数传递到ejs中-但是,在我的实际代码中,我真的需要ejs功能-而不仅仅是常规javascript。