我用 Node 和 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 的细微差别,但是您的代码有一个突出的问题。我不确定解决这个问题是否会让一切正常,但它肯定不会解决这个问题。
getArticles 是一个不返回任何内容的函数,但您调用它时就好像它是一个有返回值的函数一样。现在,即使您向该函数添加 return 语句,它仍会返回 undefined,因为对数据库的调用是异步发生的。这意味着该函数将在实际从数据库中检索数据之前返回。此函数至少需要传入回调,否则您可以查看 mysql-promise 库并改用它。
关于MySQL 从 html 中的 node.js 结果,通过 react.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710453/