因此,我在另一个文件上创建了一个练习函数,我正在将其导入到server.js文件中,因为我只是在处理节点并测试什么有效,什么无效。
我正在使用express作为框架,当我在res.render对象中传递函数并在res.render范围内为该函数提供参数时,
app.get('/projects', (req, res) => {
res.render('projects', {
pageTitle: "Projects Page",
allCaps: practice.screamIt("this will be all caps")
});
});
当我在我的projects.ejs文件中将其命名为<h1><%-allCaps%></h1>
我想做的是通过调用<%allCaps('capitalize this string')%>
在ejs文件中传递参数,但这似乎不起作用。
当我像这样使用app.locals在server.js文件中直接创建函数时...
app.locals.addSum = (a,b) => {
return a + b
};
我从我的ejs文件中将参数传递给所述函数没有问题...
<h1><%-addSum(10, 15)%></h1>
关于如何实现从EJS文件调用其他函数的任何想法?还是只能使用app.locals。
编辑发现了如何做:
伙计们,我刚刚通过对象通过了require语句
const practice = require('./public/functions/practice.js')
app.get('/projects', (req, res) => {
res.render('projects', {
pageTitle: "Projects Page",
practice: practice
});
});
并在ejs文件中将其命名为
<h1><%-practice.screamIt('capitilize this')%></h1>
问题解决了!
答案 0 :(得分:0)
编辑发现了如何做:
伙计们,我刚刚像这样通过对象传递了require语句
const practice = require('./public/functions/practice.js')
app.get('/projects', (req, res) => {
res.render('projects', {
pageTitle: "Projects Page",
practice: practice
});
});
像这样在ejs文件中调用它
<h1><%-practice.screamIt('capitilize this')%></h1>
问题解决了!