MySQL 结果来自 html 中的 node.js,由 react.js

Posted

技术标签:

【中文标题】MySQL 结果来自 html 中的 node.js,由 react.js【英文标题】:MySQL result from node.js in html, by react.js 【发布时间】:2017-09-28 08:35:18 【问题描述】:

我用节点和 reacc 制作了我的第一个 Web 应用程序。 我在 node.js 中进行 sql 查询并在我的页面中显示 html 元素。 我需要帮助在我的 html 页面中获取 sql 的结果作为 json 日期。 我把一些代码放在我的实验中,这可能是非常错误的。 问候。

var React = require('react');
var DefaultLayout = require('./layout/master');

var mysql = require('mysql');

var connection = mysql.createConnection(
    port: '3301',
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'nodedb',
);
connection.connect();

function getArticless() 
    connection.query('select * from articles', function(err, result) 
        if (err) 
            JSON.stringify(err);
        else
            JSON.stringify(result);
    );


const jsonArticles = getArticless();

var IndexComponent = React.createClass(
    render: function() 
        return (
            <DefaultLayout name=this.props.name>
                <div>
                    jsonArticles 
                </div>
            </DefaultLayout>
        )
    
);

module.exports = IndexComponent;

【问题讨论】:

从您发布的代码来看,您要实现的目标非常不清楚。看起来您正在从客户端调用数据库,或者您正在尝试使用 react 从服务器进行渲染。此外,您没有考虑到数据库查询异步发生的事实。这段代码似乎充满了错误。或许您可以尝试缩小您需要帮助的范围,并将其作为问题提出。 我想用 react 从服务器渲染。 【参考方案1】:

我不熟悉使用 react 进行服务器端渲染的细微差别,但是您的代码有一个明显的问题。我不确定修复此问题是否能让一切正常,但肯定无法解决此问题。

getArticles 是一个不返回任何内容的函数,但您调用它时就好像它是一个返回某些内容的函数一样。现在,即使您向该函数添加 return 语句,它仍然会返回 undefined,因为对数据库的调用是异步发生的。这意味着该函数将在实际从数据库中检索到数据之前返回。这个函数至少需要传入一个回调函数,否则你可以查看 mysql-promise 库并使用它。

【讨论】:

以上是关于MySQL 结果来自 html 中的 node.js,由 react.js的主要内容,如果未能解决你的问题,请参考以下文章

如何显示来自 mySQL 的正确数据?

来自数据库的 PEAR MIME html 表只发送一行

服务器可以检查请求是不是来自 iframe (Node.js)?

来自 MySQL 的 XML 数据

在 selectManyListbox 中显示来自数据库的结果

PHP Mysql PDO查询来自foreach存储的多个值以供输出