【发布时间】:2018-11-03 08:24:13
【问题描述】:
所以我刚刚使用 React、NodeJS、Express.JS 和 SocketIO 创建了简单的聊天应用程序。我将在 Heroku 上部署它。
问题是我不确定我能否在同一个 URL 上同时运行前端和后端。当我第一次在本地创建这个聊天时,我在 localhost:3000 上运行前端(由 Create-React-App 默认)和在 localhost:8000 上运行后端。
对于前端,我在外部 API.js 文件中是这样做的:
import io from 'socket.io-client';
let socket;
export const api = {
open: () => {
socket = io('http://localhost:8000');
}
}
对于后端,我是这样做的:
let express = require('express');
let io = require('socket.io')(8000);
所以,你看,它们都在不同的端口上。在我的电脑上,它运行良好。我不确定它们是否可以在同一个端口上本地工作(如果我试图将后端的 8000 端口切换到端口 3000,不幸的是它不能正常工作 - 前端和后端不能在同一个端口上工作,发生 HTTP 404 错误)。
我的问题是:有什么理由/甚至可以将它放在同一个端口上吗?因为这是第 2 个问题:
我尝试将它部署在 heroku 上,对于前端,我使用 Heroku Buildpack 进行 create-react-app 并且工作正常,但完全不知道如何使用它来部署服务器-边。我应该为后端创建单独的heroku地址吗?并且,在上面的代码中,更改路径,例如:
let socket;
export const api = {
open: () => {
socket = io('http://myherokuaddress');
}
}
和
let express = require('express');
let io = require('socket.io')(http://myherokuaddress);
?
【问题讨论】:
标签: reactjs express heroku deployment socket.io