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的主要内容,如果未能解决你的问题,请参考以下文章
服务器可以检查请求是不是来自 iframe (Node.js)?