2017-12-03 90 views
0
使用ReactJS

我有需要与UI相互作用,并且在后端数据库执行各种CURD操作,我们有一个角1.2应用程序,它具有UI和另一节点的应用和申请,用的NodeJS

目前我对于每个需要角色的应用程序都会向节点应用程序发送http请求,因此在这里我有两种不同的服务。

我想将这些操作组合成一个单一的服务意味着UI(React)和节点在一个服务中,就像在节点内部作出反应,当我启动节点服务器时我应该也能够通过UI访问,我正在使用在节点中表达,在单个服务中使用ReactJS和Node的最佳方式是什么。

回答

2

希望你使用express和nodejs。您可以将反应应用程序文件夹放置在某个名为client的文件夹中的节点应用程序文件夹内然后从节点的应用程序,你可以做以下的服务器反应过来文件:

var app = express(); 
app.use(express.static(path.join(__dirname, 'client'))); 

后,所有的应用程序特定的路线,以满足您的API,提供以下服务index.html的所有其他GET请求。

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname+'/client/index.html')); 
}); 
0

为了执行从反应应用的HTTP请求(如果后端不要紧为节点),我建议使用fetch api

fetch(url) 
    .then(response => response.json()) 
    .then(response => /* Do what you need with it */) 

Axios也著作颇丰,并提供相同结果:

axios.get(url) 
    .then(response => response => /* Do what you need with it */) 
    .catch(error => console.log(error)) 
+0

一旦我有反应和节点在一个服务我不会需要使https,我猜。 – user3649361

+1

不,您仍然必须从反应应用程序到节点应用程序进行http调用。即使它托管在同一台服务器上,您的反应js文件也会下载到浏览器并从浏览器运行,而您的节点js文件将保留在其托管的服务器中。所以你仍然需要使用fetch或axios通过http进行通信。 – Saud