簡體   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