You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Azure PostgreSQL测试URL并解决Postman连接报错问题

Azure PostgreSQL + Node.js 接口问题解决方案

一、解决"Error: socket hang up"错误

这个错误的常见触发点和修复方式:

  • Node.js服务未启动或未监听端口:检查路由代码末尾是否有启动服务的逻辑,示例:
    const port = process.env.PORT || 3001;
    app.listen(port, () => {
      console.log(`Server running on port ${port}`);
    });
    
    未启动服务的话,Postman根本无法连接后端,必然报错。
  • Azure PostgreSQL防火墙未放行访问:登录Azure Portal,找到你的PostgreSQL服务器,进入「连接安全」页面:
    • 添加你的本地公网IP地址(测试用);
    • 开启「允许Azure服务和资源访问此服务器」开关;
    • 确认「拒绝公共网络访问」设置为「否」(测试环境)。
  • 接口路由未正确响应请求:如果接口代码里没有用res.send()/res.json()返回数据,请求会超时导致socket hang up。正确路由示例:
    app.get('/api/get-data', (req, res) => {
      pool.query('SELECT * FROM your_table', (err, result) => {
        if (err) {
          return res.status(500).send('查询失败');
        }
        res.json(result.rows);
      });
    });
    
  • 数据库连接隐式错误:给pool.connect加上完整错误捕获,避免连接失败直接崩溃服务:
    pool.connect(function (err) {
      if (err) {
        console.error('数据库连接失败:', err.stack);
        return;
      }
      console.log('Connected!');
    });
    

二、Postman测试用的URL规则

  • 本地开发环境:URL格式为 http://localhost:你的服务端口/接口路径。比如服务跑在3001端口,接口是/api/get-data,测试URL就是 http://localhost:3001/api/get-data。
  • Azure部署环境:如果Node.js服务部署在Azure App Service,URL就是你的App Service域名+接口路径,比如 https://your-app-name.azurewebsites.net/api/get-data。

三、React应用获取数据的URL配置

  • 本地开发跨域场景:直接使用本地服务的完整URL,示例:
    fetch('http://localhost:3001/api/get-data')
      .then(res => res.json())
      .then(data => console.log(data));
    
    同时需要在Node.js服务中处理跨域,安装并启用cors:
    npm install cors
    
    const cors = require('cors');
    app.use(cors());
    
  • 生产环境:
    • 如果React和Node.js部署在同一域名下(比如React静态文件放在App Service的wwwroot,后端路由同域名),可以用相对路径:fetch('/api/get-data');
    • 如果分开部署,直接使用Node.js服务的完整域名URL即可。

内容的提问来源于stack exchange,提问作者Haochen Dong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:37:29