如何连接反应前端并表达后端?

时间:2017-12-02 21:33:27

标签: reactjs express

所以这是我在泡菜中的问题:顺便说一下,我在通过谷歌找到如何做到这一点时遇到了一些麻烦,我确实尝试使用StackOverflow但是找不到确切的答案

所以我有一个使用

的ReactJS网站
  

纱线开始

运行并在localhost:3000上启动 我希望它在localhost:3000上启动,而快速服务器也在该服务器上启动,也就是在express.js中启动react服务器。

似乎我发现的每一个教程,大多数都已经过时了,其余的都是导致反应变成静态网站,然后使用快递。我想在服务器端保持反应,以利用react-router

Edit1:所以基本上我有一个expressjs服务器 数据库详细信息已被删除,线路没有错误

  

const express = require('express'); var app = express();

     

var mysql = require('mysql'); var connection =   mysql.createConnection({host:    数据库:'main'});

     

connection.connect()

     

app.post('/ users',function(req,res){var user = req.body;     res.end( '成功'); })

     

app.listen(3000,function(){console.log('Express sever正在侦听   在港口3000')})

     

// connection.end()

我还启动了带有纱线启动的create-react-app服务器,它在localhost:3000上启动,但是这个expressjs服务器会覆盖它。

所以我想连接两个以便能够发送帖子请求

2 个答案:

答案 0 :(得分:2)

我最近刚开发了一个实现此策略的样本仓库。有几种方法可以做到这一点,但最简单的方法是将Express服务器作为第二个服务器启动,该服务器将在不同的端口上运行,即。 3001.然后,您可以使用concurrently在单个命令中启动react服务器(我假设webpack)和express API服务器。

Here is a tutorial显示了如何设置它。您应该注意本教程中有关通过Webpack服务器代理来自客户端(浏览器)的请求的部分。如果您不通过webpack服务器代理请求,则需要考虑有关CORS配置的一些注意事项。

Here is my proof of concept repo我实现了你正在寻找的东西:反应客户端和表达服务器。它可以是run via concurrently或使用docker(撰写)。

答案 1 :(得分:0)

您可以更改Express正在监听的端口:

var server = app.listen(3001, function () {
    var host = server.address().address
    var port = server.address().port
    console.log("Example app listening at http://%s:%s", host, port)

将3001更改为任何有效的端口号