我们有一个带有Node/Express后端和MySQL数据库的React应用程序/网站。一切都在本地运行,但我们在部署后将后端与前端连接时遇到了问题。
我们的客户端使用GoDaddy与cPanel的共享主机。我们能够成功部署React应用程序,并获得一个在GoDaddy中运行的独立Node/Express服务器,该服务器可以连接到MySQL数据库,但无法将React应用程序连接到该服务器。
下面是我们服务器的连接部分:
app.use(cors({ credentials: true, origin: "http://the-website.com/" }));
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});
const connection = mysql.createConnection({
user: "theUser",
host: "localhost",
password: "thePassword",
database: "theDatabase",
});
下面是React应用程序的.htaccess文件的内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
有没有办法通过这个.htaccess文件将React应用程序连接到端口3000?
我遇到了这个StackOverflow问题,它使用以下代码将React应用程序与Node服务器连接起来:
RewriteEngine on
RewriteRule (.*) http://localhost:3000/$1 [P,L]
但我一直没有成功地让这个解决方案为我工作。
或者,当我们在本地开发应用程序时,它使用Axios调用,如下所示:
const MoveToProfile = async () => {
const formData = new FormData();
formData.append('email', inputEmail.current.value);
formData.append('password', inputPassword.current.value);
try {
await axios.post("http://localhost:3000/login", formData).then((response) => {
if (response.data.auth) {
...
部署后,我们还尝试在Axios调用中指定端口:
const MoveToProfile = async () => {
const formData = new FormData();
formData.append('email', inputEmail.current.value);
formData.append('password', inputPassword.current.value);
try {
await axios.post("http://the-website.com:3001/login", formData).then((response) => {
if (response.data.auth) {
...
但这只会导致页面超时。
任何见解/帮助都将不胜感激。
1条答案
按热度按时间djmepvbi1#
2个选项:
或:I have Godaddy Shared Web Hosting I need to host node.js website can host site?