Javascript POST请求在localhost中工作,但在部署到google云后不工作

Javascript POST请求在localhost中工作,但在部署到google云后不工作,javascript,node.js,reactjs,express,google-cloud-platform,Javascript,Node.js,Reactjs,Express,Google Cloud Platform,Axios post请求在我的本地服务器上运行良好,但在谷歌云上部署该项目后,它抛出了404 not found错误 在localhost中,所有请求都发送到以开头的URLhttp://localhost:9000/api/...它完美地处理了所有post请求,没有任何问题 但是,在谷歌云上部署项目后,它抛出了一个404错误。 如果URL包含/api/…,并且完整的URL如下所示,我已将NGINX配置为将传入请求重定向到服务器https://myurl.org.nz/api/...。下面是我的N

Axios post请求在我的本地服务器上运行良好,但在谷歌云上部署该项目后,它抛出了404 not found错误

在localhost中,所有请求都发送到以
开头的URLhttp://localhost:9000/api/...
它完美地处理了所有post请求,没有任何问题

但是,在谷歌云上部署项目后,它抛出了一个
404错误
。 如果URL包含
/api/…
,并且完整的
URL
如下所示,我已将NGINX配置为将传入请求重定向到服务器https://myurl.org.nz/api/...。下面是我的Nginx配置

代码:

server {
  server_name myurl.org.nz www.myurl.org.nz;
  location / {
    root /home/myproject/build/;
    try_files $uri /index.html;
  }
  location /api/ {
    proxy_pass http://localhost:9000/;
  }
}
处理传入请求的服务器端代码

base.routes.js

router.route(“/”).post(异步(req,res)=>{
等待axios
.get(“https://maps.googleapis.com/maps/api/place/textsearch/json", {
参数:{
查询:req.body.query.search,
key:process.env.GOOGLE\u PLACE\u API\u key,
},
})
//……代码的其余部分。。。。。
})
server.js

const route=require(“./Routes/base.Routes”);
应用程序使用(“/api”,路线);
从客户端发送到服务器的Axios请求<代码>反应\应用\产品\ URL=https://www.myurl.org.nz/api/

axios.post(`${process.env.REACT\u APP\u PROD\u URL}`,数据)
。然后((res)=>{
setData(res.data)
})
我不确定我错在哪里。非常感谢您的帮助,如果您需要更多信息,请告诉我


谢谢。

这是一个超级基础应用程序,支持多条路线和您的代码

/./index.js
const express=require('express')
const app=express()
const server=require('http')。服务器(应用程序)
应用程序使用(“/”,要求(“./routes”))
server.listen('3000',()=>{
console.log('在端口3000上运行')
})
/./routes/index.js
const{Router}=require('express')
常量路由器=路由器()
//回应得到http://localhost:3000
路由器.get(“/”,(请求,res)=>{
res.json({
根目录:{
api:“基本api”,
版本:1
}
})
})
router.use('/api',require('/api'))
module.exports=路由器
/./routes/api.js
常量axios=require('axios')
const{Router}=require('express')
常量路由器=路由器()
//回复帖子http://localhost:3000/api
路由器.post('/',异步(请求,恢复)=>{
试一试{
常数响应=等待axios
.get(“https://maps.googleapis.com/maps/api/place/textsearch/json", {
参数:{
查询:req.body.query.search,
key:process.env.GOOGLE\u PLACE\u API\u key,
},
})
console.log(响应)
//……代码的其余部分。。。。。
}捕捉(错误){
res.status(500).json({
错误:错误
})
}
})
module.exports=路由器
还有一些ngninx代码

upstream my_nodejs_upstream {
    server 127.0.0.1:3000;
    keepalive 64;
}
server {
    listen 80;
    server_name my_nodejs_server;
    root /home/myproject/build;

    location / {
        more_clear_headers Server;
        server_tokens off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_max_temp_file_size 0;
        proxy_pass http://my_nodejs_upstream/;
        proxy_redirect off;
        proxy_read_timeout 240s;
    }
}

我已通过删除转发/从代理中删除本地主机:9000解决了此问题。

Hi@alilland,非常感谢您的回答。我已通过删除“向前/从代理”通行证修复了此问题。非常感谢您花时间回答我的问题。@ksa另外,请确保使用PM2之类的工具运行您的服务器,否则当您的应用程序崩溃时,它将永远不会重新启动