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