最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在ejs页面上设置JSON值

IT培训 admin 16浏览 0评论

如何在ejs页面上设置JSON值

我需要在我的EJS页面上返回JSON字段,但该字段为空白,有人可以帮助我:

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文件,我在其中导入site-model.js并通过传递值来呈现ejs页面:

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

  },

}

我的ejs页面从渲染数据中接收数据:

<!-- 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

回答如下:

您的控制台显示about是一个数组

您的问题应通过以下方式解决:

res.render('./site/index', {dados: about[0]} );

如何在ejs页面上设置JSON值

我需要在我的EJS页面上返回JSON字段,但该字段为空白,有人可以帮助我:

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文件,我在其中导入site-model.js并通过传递值来呈现ejs页面:

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

  },

}

我的ejs页面从渲染数据中接收数据:

<!-- 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

回答如下:

您的控制台显示about是一个数组

您的问题应通过以下方式解决:

res.render('./site/index', {dados: about[0]} );

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论