标签: ejs

如何使用 EJS 模板语言打破循环?

我正在使用 sails.js 开发一个简单的 Web 应用程序。

在我的前端代码中,我循环遍历控制器发送的对象数组,并且正在搜索特定对象。我想在找到对象后打破循环。有没有一种干净的方法可以使用 ejs 模板语言来做到这一点?

我在EJS官方网站和sails网站上都找不到任何相关信息。

到目前为止我天真地尝试过:

<% objects.forEach(function(object)  { %>
    <% if(object.someId == someValue) {%>
        <%= object.name %>
        <% break %> <!-- This raise an illegal statement exception -->
    <% } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

以下代码按预期工作,但我正在寻找更干净的解决方案(如果有)

<% var found = false %>
<% objects.forEach(function(object)  { %>
    <% if(object.someId == someValue && !found) {%>
        <%= object.name %>
        <% found = true %>
    <% } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

javascript ejs sails.js

0
推荐指数
1
解决办法
4442
查看次数

使用 ejs + emailjs 时,base64 图像不显示在 Outlook 中

当各种事件发生时,我混合使用ejsemailjs在我的 Node.js 应用程序中发送电子邮件。我想在发送电子邮件时将 Base64 图像(一个小徽标)嵌入到电子邮件中,但 Outlook 和 Gmail(加上 Google 的 Inbox)都无法呈现该图像。

我使用这段代码来查找图像的 mime 类型并将 base64 字符串组合在一起:

MyApp.prototype.ImageToBase64 = function(image) {
  var mime = require("mime")
  file = fs.readFileSync(__dirname + "/images/" + image, { encoding: 'base64'})
  return 'data:' + mime.lookup(image) + ';base64,' + file;
}
Run Code Online (Sandbox Code Playgroud)

这非常有用,因为我可以将生成的字符串复制并粘贴到浏览器中并查看图像。但是当我通过 emailjs 发送电子邮件时,Outlook 将+s 转换为&#43;. 当我在 Gmail 中“查看原始内容”时,base64 被分成“块”。每个块都位于换行符上,并且每行以 结尾=。如果我采用 Gmail 的版本并删除=换行符,然后将其粘贴到我的浏览器中,则整个图片可以完美加载,但它只是拒绝加载其他任何地方,无论用户是否在我的联系人列表中。

这是我用来发送电子邮件的代码:

// Host, username, password and SSL (false) all set above here
server.send({ …
Run Code Online (Sandbox Code Playgroud)

email outlook ejs node.js

0
推荐指数
1
解决办法
6999
查看次数

如何在if语句中显示不同的HTML元素

您好,我是 HTML 和 JS 新手,因此想寻求一些帮助。这里我想根据 if 语句为 true 或 false 显示两个不同的 HTML 元素。然而,它不起作用。我可以寻求帮助吗?(:

<!DOCTYPE html>
<html>
<body>


<script>
if (!user) {
    <h1> there is no user </h1>
} </script>


if (user) {
    <button type="button">Click Me!</button>
} </script>


</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript if-statement ejs

0
推荐指数
1
解决办法
4万
查看次数

在文本区域内显示数据(ejs)

我正在尝试获取数据(从 mongo 获取)以显示到文本区域中。其目的是让我可以编辑数据库中的数据,而无需实际接触数据库本身。我可以在普通 HTML 标签中显示数据,但我对如何让它在文本区域(或允许我编辑和重新提交新数据的任何其他标签)中显示它一无所知。

我正在使用 EJS 进行渲染,到目前为止,所有内容都可以正确显示

<%= text %>
Run Code Online (Sandbox Code Playgroud)

我只需要它在可编辑文本区域内工作

html javascript ejs node.js

0
推荐指数
1
解决办法
3455
查看次数

EJS 渲染 HTML

我在 Express 和 MongoDB 上有一个简单的博客应用程序,使用 EJS 来呈现我的数据。

我遇到的问题是我希望它的样式像一个段落:

<div class="show-post__content">

   <%= post.body %>

 </div>
Run Code Online (Sandbox Code Playgroud)

post.body的内容是:'<p>Hello there, this is a new post.</p>'

但它的渲染是这样的:

如果图片不起作用,它会显示出可见的括号,而不是看起来像实际的 html p 标签(如果这有意义的话)...有人知道如何解决这个问题吗?

非常感谢,

拉夫

html ejs node.js express

0
推荐指数
2
解决办法
2373
查看次数

“SyntaxError: Unexpected token '/' ... while compilering ejs”发生在包含语句中

我似乎无法找到为什么会发生这种情况,我在大多数应用程序中都有几乎相同的代码,它几乎是样板,我只是试图将 HTML 的顶部分成 header.ejs 并将底部分成一个footer.ejs 文件,然后将它们包含到我的 index.ejs 中。当我将所有代码保存在 index.ejs 文件中时,它很好。我也试过删除这样的空格 <%include ./partials/header.ejs%>,添加'-' <%- include ./partials/header.ejs %>,即使我有这个错误,我仍然收到这个错误相同的代码 - 我的文件中的相同语法。

索引.ejs

<% include ./partials/header.ejs %>

<h1>YO HO HO LET THIS WORK!</h1>

<% include ./partials/footer.ejs %>
Run Code Online (Sandbox Code Playgroud)

头文件.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>P2</title>
    <link rel="stylesheet" href="/stylesheets/app.css">
</head>
<body>
Run Code Online (Sandbox Code Playgroud)

页脚.ejs

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html ejs node.js

0
推荐指数
1
解决办法
885
查看次数

JS 函数中的 EJS 数组

我的数据库中有一个scores数组。我想从我的 ejs 网页中的数组中提取最大值。

我不确定,但尝试了以下代码:

<div>
       <%-Math.max(user.scores)%>
</div>
Run Code Online (Sandbox Code Playgroud)

这没有给出期望的结果。

例如,如果scores数组是 [1, 4, 99, 2, 7],它应该在我的网页上给我 99。

javascript ejs mongodb

0
推荐指数
1
解决办法
123
查看次数

API获取后如何仅从字符串化json中获取键和值?

我试图在 EJS 页面上仅显示键和值。

<span><%= JSON.stringify(results.conversion_rates) %></span>
Run Code Online (Sandbox Code Playgroud)

留给我

{"USD":1,"AED":3.6721,"ARS":81.0455,"AUD":1.3564,"BGN":1.6324}
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除括号和引号?

如果有帮助,这是我的 server.js 路由:

app.get('/results', (req, res) => {
  const query = req.query.q;
  axios
    .get(`https://v6.exchangerate-api.com/v6/a66b8aae93f6e7abafe3aab5/latest/${query}`)
    .then(function (response) {
      const currencyPair = `Conversion Rates for ${query}`;
      console.log(response)
      res.render('results', {
        currencyPair,
        results: response.data,
      });
    })
});
Run Code Online (Sandbox Code Playgroud)

javascript api ejs node.js express

0
推荐指数
1
解决办法
59
查看次数

错误:找不到“&lt;%=”的匹配关闭标记

我只是想简单问一下我有这样的错误

错误:找不到“<%=”的匹配关闭标记。在 C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules\ejs\lib\ejs.js:693:19 在 Array.forEach () 在 Template.generateSource (C:\Users\User\Documents \latihannode.js\nodejs8\library\node_modules\ejs\lib\ejs.js:678:15) 在 Template.compile (C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules\ejs\lib \ejs.js:557:12) 在 Object.compile (C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules\ejs\lib\ejs.js:389:16) 在handleCache (C: \Users\User\Documents\latihannode.js\nodejs8\library\node_modules\ejs\lib\ejs.js:212:18) 在 tryHandleCache (C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules \ejs\lib\ejs.js:251:16) 在 View.exports.renderFile [作为引擎] (C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules\ejs\lib\ejs.js :482:10) 在 View.render (C:\Users\User\Documents\latihannode.js\nodejs8\library\node_modules\express\lib\view.js:135:8) 在 tryRender (C:\Users\User \Documents\latihannode.js\nodejs8\library\node_modules\express\lib\application.js:640:10)

这是我使用 ejs 使用的代码

<ul class="nav navbar-nav">
        <% for(let i=0; i<nav.length; i++) { %>
        <li>
          <a href="<%=nav[i].link"><%nav[i].title%></a>
        </li>
        <%}%>

      </ul>
Run Code Online (Sandbox Code Playgroud)

这是来自我的 NodeJS js 文件。当我渲染“index”时,我将索引变量传递给 EJS

app.get('/', (req, res) => {
  res.render(
    'index',
    {
      nav: [{ link: '/buku', title: 'Buku' },
        { link: '/penulis', title: 'Penulis' …
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js

-2
推荐指数
1
解决办法
2万
查看次数

标签 统计

ejs ×9

javascript ×6

node.js ×6

html ×4

express ×2

api ×1

email ×1

if-statement ×1

mongodb ×1

outlook ×1

sails.js ×1