繁体   English   中英

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

[英]<% %> isn't working properly in EJS web pages

我有一个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>之后的%> <%似乎不起作用。

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

您可能应该先执行getProducts()并将结果传递到EJS中:

js

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

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

template.ejs

<% results.map(result => result) %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM