【问题标题】:Integrate NodeJS MySql with React Application将 NodeJS MySql 与 React 应用程序集成
【发布时间】:2018-06-04 15:31:01
【问题描述】:

我有一个在Node 服务器上运行的普通React 应用程序

-node_modules
-src
   -Actions
   -Components
   -Stores
   -Server
     -server.js
-package.json   

基本上当我运行npm start React App 时会运行,假设我将能够看到localhost:8080 中的示例

现在我的server.js 文件包含MySql 代码

var mysql = require('mysql');

var con = mysql.createConnection({
    host: "localhost",
    user: "yourusername",
    password: "yourpassword"
});

con.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
});

我必须显式运行node server.js 命令以获取到mysql 的连接并运行它们的查询。

如何在我的 React 应用程序中集成server.js 命令,以便在我运行npm start 时,我的MySql 连接和文件应该执行

【问题讨论】:

  • 如果使用npm start,那么您可能会使用webpack-dev-server,对吗?
  • 然后将 package.json 中的 start 脚本更改为 "start": "NODE_PATH=$NODE_PATH:./src node server",。这将调用您的节点服务器,然后它将工作。
  • 你可以在你的 npm 脚本中添加 node server 使用 && 操作符像这样 "scripts": { "start": "webpack-dev-server --config './webpack/webpack.config.js' && node server" }

标签: javascript mysql node.js reactjs


【解决方案1】:

简短的回答是:你不知道。
简短的解决方法是:使用某种程序来帮助您启动两者(如 npm)

长答案是:

设置你的 npm start 任务来运行它们。您可以使用concurrently 执行此操作。 (npm install --save concurrently)

将您的 npm 启动任务(在您的 package.json 中)更改为如下内容:

"start": "concurrently -k -r -s first \"node server.js\" \"webpack-dev-server""

如果您需要进一步的帮助,请分享您的 package.json 文件。

最长的答案是:

这部分是可选的,如果你想学习,请按照它。

如果您想了解更多详细信息,可以查看一个更高级的项目,例如我的react-sane-starter,以了解如何有效地启动多个服务。如果您有兴趣,此项目还包含 Docker。

同时在 &

人们经常建议使用 & 在后台运行其中一项任务,这通常会阻止显示日志(除非重定向),我强烈建议使用并发来解决此问题。 (它会很好地为您的不同服务添加前缀)

【讨论】:

  • 感谢您花时间解释这些事情。
  • 没问题,尽情享受吧!
猜你喜欢
  • 2018-09-30
  • 2018-12-19
  • 2011-02-17
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多