[英]<% %> 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.