<%%>在EJS网页中无法正常工作

时间:2018-07-26 22:32:28

标签: javascript node.js ejs

我有一个ejs页面,我试图在其中使用以下代码:

<% dbcon.getProducts().then(results => { %>

<% }).catch(err => { console.log(err) }) %>

但是,这些%> <%似乎无效。前面和后面的是蓝色,而中间的是灰色,好像它们不起作用。我需要%> <%的原因是为了可以在两者之间添加代码。但是,它似乎不起作用。我不知道出什么问题了,我真的需要它来工作。另外,如果有更好的方法,我将不胜感激。

更新: 基本上,我想做的是在ejs页面上显示数据库表。这是我的ejs页面:

store.ejs:

<!DOCTYPE html>
<html>

<head>
    <title>PC Store | Store</title>
    <% include partials/header %>
</head>

<body>
    <header>
        <% include partials/navbar %>
    </header>
    <main>
        <% dbcon.getProducts().then(results => { %>
        <div class="container">
            <% for (var i = 0; i < results.length; i++) { %>
               <h1><%= results[0] %></h1>
            <% } %>
        </div>
        <% }).catch(err => { console.log(err) }) %>
    </main>
    <footer>
        <% include partials/footer %>
    </footer>
</body>

</html>  

里面的代码不起作用。

如果我在哪里使用console.log(results[i]);,它将在控制台中显示数据库内容。但是,它不会在ejs网页上显示。另外,在<div>之前和</div>之后的%> <%似乎不起作用。

1 个答案:

答案 0 :(得分:0)

EJS只是一种简单的模板语言,可让您使用纯JavaScript生成HTML标记。

您可能应该先做~/build/wx/$arch-gtk2/wx-config并将结果传递给EJS:

js

getProducts()

template.ejs

const ejs = require('ejs');
const template = require('./template.ejs');

const results = await dbcon.getProducts();
const html = ejs.render(template , { results });