如何在 ejs 页面上设置 JSON 值
[英] How to set JSON value on the ejs page
本文介绍了如何在 ejs 页面上设置 JSON 值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在我的 EJS 页面上返回 JSON 字段,但它变为空白,有人可以帮助我:
site-model.js
const mysql = require('mysql');var config = require('./../../database/config');const connection = mysql.createConnection(config);函数getAbout(查询){返回新的承诺((解决,拒绝)=> {connection.query(查询,函数(错误,行,字段){如果(错误)返回拒绝(错误)解决(行)});});}module.exports = (异步函数(){const result = await getAbout('SELECT * FROM sobre ORDER BY cod DESC LIMIT 1');返回结果;})()
site.js 文件,我在其中导入 site-model.js 并通过传递值呈现 ejs 页面:
site.js
var about(异步函数(){about = JSON.parse(JSON.stringify(await require('./site-model')))})()模块.出口 = {pageSite: (req, res, next) =>{console.log('About here: ', about);//控制台正常,JSON 正在返回res.render('./site/index', { dados: about });//在这里帮忙},}
我从渲染数据接收数据的ejs页面:
<div class="wowfadeInUp" data-wow-duration="1s" data-wow-delay="300ms"><h2><%= dados.titulo %></h2><!-- 在这里帮助-->
<!-- 子标题--><div class="wowfadeInDown" data-wow-duration="1s" data-wow-delay="300ms"><h4><%= dados.sub_titulo %></h4><!-- 在这里帮助-->
查看控制台的返回:
h4 和 h2 为空:
解决方案
解决方案
我设法达到了令人满意的结果,请参阅:
site-model.js
const mysql = require('mysql');var config = require('./../../database/config');const connection = mysql.createConnection(config);功能选择(查询){返回新的承诺((解决,拒绝)=> {connection.query(查询,函数(错误,行,字段){如果(错误)返回拒绝(错误)解决(行);});});}模块.出口 = {getSobre:(异步函数(){const result = await select('SELECT * FROM sobre ORDER BY cod');返回结果;})(),}
site.js(渲染)
const funcao = require('./site-model');变清醒(异步函数(){sobre = JSON.parse(JSON.stringify(await funcao.getSobre))})()模块.出口 = {pageSite: (req, res, next) =>{res.render('./site/index', {TBSobre:清醒});},}
页面 index.ejs
<!-- Preenche dados vindos do MySQL --><% TBSobre.forEach(function(row){%><!-- 标题--><div class="wowfadeInUp" data-wow-duration="1s" data-wow-delay="300ms"><h2><%=row.titulo%>
<!-- 子标题--><div class="wowfadeInDown" data-wow-duration="1s" data-wow-delay="300ms"><h4><%= row.sub_titulo %></h4>
<% });%>
结果在这里
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I need to return JSON fields on my EJS page but it is coming blank, can someone help me:
site-model.js
const mysql = require('mysql');
var config = require('./../../database/config');
const connection = mysql.createConnection(config);
function getAbout (query) {
return new Promise((resolve, reject) => {
connection.query(query, function (err, rows, fields) {
if (err) return reject(err)
resolve(rows)
});
});
}
module.exports = (async function () {
const result = await getAbout('SELECT * FROM sobre ORDER BY cod DESC LIMIT 1');
return result;
})()
site.js file where I import site-model.js and render the ejs page by passing the values:
site.js
var about
(async function () {
about = JSON.parse(JSON.stringify(await require('./site-model')))
})()
module.exports = {
pageSite: (req, res, next) => {
console.log('About here: ', about);//Console ok, JSON is returning
res.render('./site/index', { dados: about });// Help here
},
}
My ejs page that receives the data from the render data:
<!-- Título -->
<div class="wow fadeInUp" data-wow-duration="1s" data-wow-delay="300ms">
<h2><%= dados.titulo %></h2><!-- Help Here -->
</div>
<!-- Sub-Título -->
<div class="wow fadeInDown" data-wow-duration="1s" data-wow-delay="300ms">
<h4><%= dados.sub_titulo %></h4><!-- Help Here -->
</div>
See the return of the console:
h4 and h2 coming empty:
解决方案
SOLUTION
I managed to reach a satisfactory result, see:
site-model.js
const mysql = require('mysql');
var config = require('./../../database/config');
const connection = mysql.createConnection(config);
function select(query) {
return new Promise((resolve, reject) => {
connection.query(query, function (err, rows, fields) {
if (err) return reject(err)
resolve(rows);
});
});
}
module.exports = {
getSobre: (async function () {
const result = await select('SELECT * FROM sobre ORDER BY cod');
return result;
})(),
}
site.js (render)
const funcao = require('./site-model');
var sobre
(async function () {
sobre = JSON.parse(JSON.stringify(await funcao.getSobre))
})()
module.exports = {
pageSite: (req, res, next) => {
res.render('./site/index', {
TBSobre: sobre
});
},
}
Page index.ejs
<!-- Preenche dados vindos do MySQL -->
<% TBSobre.forEach(function(row){ %>
<!-- Título -->
<div class="wow fadeInUp" data-wow-duration="1s" data-wow-delay="300ms">
<h2><%= row.titulo %> </h2>
</div>
<!-- Sub-Título -->
<div class="wow fadeInDown" data-wow-duration="1s" data-wow-delay="300ms">
<h4><%= row.sub_titulo %></h4>
</div>
<% }); %>
Result Here
Thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
这篇关于如何在 ejs 页面上设置 JSON 值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!