node.js - ejs async true 与 node Express

标签 node.js express async-await ejs

我想从我的 ejs 文件中调用我的一些异步函数。

就像我将此功能设置为我的 app.locals.someFunction

async someFunction(param){
  let data = await someAsyncStuff();
  // &  other things
  return data;
}

我想在 ejs 文件中使用它,如下所示:

<%
let data = await someFunction()
for(let x of data){%>

   <li><%=x%></li>

<%}%>

如果 {async:true},这对 ejs 来说是可能的作为选项传递。但是,当我的 View 引擎设置如下所示时,我到底应该在哪里传递它?


//view engine setup
app.engine ('.html', ejs.renderFile);
app.set ('view engine', 'html');

最佳答案

而是 res.render()

const ejs = require('ejs');
const html = await ejs.renderFile(view, data, {async: true});
res.send(html);

每个包含等待
<body>
    <%- await include(pageView);%>
</body>

异步现在很好
<%
let data = await collection.find().toArray();

for(let x of data){%>

   <li><%=x%></li>

<%}%>

关于node.js - ejs async true 与 node Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60203249/

相关文章:

javascript - 在 Node.js 中编写和加载模块的正确方法?

javascript - NextJS 与 Express

node.js - 需要帮助在 NodeJS 中使用 Sinon 来 stub async/await promise

javascript - 等待函数回调时出现问题

node.js - 获取 http ://localhost: postman

node.js - nodejs newrelic 抛出错误 : EACCES, 打开 '/newrelic_agent.log'

node.js - Socket.io:从一台服务器连接到另一台服务器

node.js - Nodejs - Express - 嵌套发布数据无法正确解析

node.js - 部署后如何解决heroku中找不到页面错误

c# - Xamarin.Forms Map 与异步等待不兼容