Javascript 如何在node js中调用模板文本中的函数

Javascript 如何在node js中调用模板文本中的函数,javascript,node.js,express,ejs,template-literals,Javascript,Node.js,Express,Ejs,Template Literals,我使用的是node js,express。我试图调用模板文本中的函数。 我制作了一个模块并在主文件中导入,然后将该函数添加到app.locals中,并在我的视图中访问,效果很好。但当我尝试在模板文本和公共文件中使用它时,它会给我错误“currencyToWords未定义” 我认为在公共文件中这是有意义的,因为我将公共文件夹设置为静态。 但在我看来,这很奇怪,因为当我在html中使用它时,它可以工作,但当我在模板文本中使用它时,它会给出错误 我想在模板文本中使用currencyToWords函数来

我使用的是node js,express。我试图调用模板文本中的函数。 我制作了一个模块并在主文件中导入,然后将该函数添加到app.locals中,并在我的视图中访问,效果很好。但当我尝试在模板文本和公共文件中使用它时,它会给我错误“currencyToWords未定义”

我认为在公共文件中这是有意义的,因为我将公共文件夹设置为静态。 但在我看来,这很奇怪,因为当我在html中使用它时,它可以工作,但当我在模板文本中使用它时,它会给出错误

我想在模板文本中使用currencyToWords函数来更改响应。
我有一个解决方案我可以将文件放在公用文件夹中,并在该文件的脚本中添加函数,然后在页脚中导入,但我不想这样做。
有人能帮我解决这个问题吗

我的应用程序结构 module.exports={currencyConverter}

在app.js中 app.js是我创建服务器的主文件

var { currencyToWords } = require('./config/functions');
app.locals.currencyToWords = currencyToWords;
通过添加本地人,我可以在我的应用程序中随时随地访问它

此代码正在运行:

 <div class="fix pull_right">
  <h3><%= currencyToWords(property.propertyDetails.price)%></h3>
 </div>
设置后,app.locals属性的值将在应用程序的整个生命周期内保持不变,而res.locals属性仅在请求的生命周期内有效

您可以访问应用程序中呈现的模板中的局部变量这对于为模板提供帮助函数以及应用程序级数据非常有用。本地变量可通过req.app.locals在中间件中使用(请参见req.app)


我认为您正在将
currencyToWords
函数从服务器发送到视图?或者它只是一个常规的客户端JS函数?在呈现视图时,我尝试将currencyToWords函数从服务器发送到视图,并且还从单独的util.JS文件导入它,但两种方法都显示了此错误
var a =`
  <p>${currencyToWords(property.propertyDetails.price)}</p>
`;
console.dir(app.locals.title)
// => 'My App'

console.dir(app.locals.email)
// => 'me@myapp.com'
app.locals.title = 'My App'
app.locals.strftime = require('strftime')
app.locals.email = 'me@myapp.com'