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

Node.js实现的Google Cloud Vision文字识别Post API在Postman中无响应

排查Google Cloud Vision OCR API无响应问题

以下是针对你的API无响应问题的排查方向:

  • 确认上传字段名匹配
    代码中使用upload.single("file"),意味着Postman表单数据的Key必须严格为"file"。如果表单里的字段名是其他(比如"image"、"upload"),req.file会是undefined,导致client.textDetection传入无效路径,请求卡住无响应。检查Postman的表单数据Key是否与代码一致。

  • 验证文件上传与路径有效性

    1. 在路由处理函数开头添加日志,确认是否成功获取上传文件:
      app.post("/images", upload.single("file"), function (req, res) {
        console.log("上传文件信息:", req.file); // 打印文件信息
        if (!req.file) {
          return res.status(400).send("未上传文件");
        }
        client.textDetection(req.file.path)
        // ... 后续代码
      });
      
    2. 检查req.file.path对应的本地文件是否存在,Node.js进程是否有读取该文件的权限。如果文件未正确保存(比如multer存储路径配置错误),会导致Vision API无法读取文件,请求停滞。
  • 检查Google Cloud Vision客户端初始化
    确保你已正确初始化Vision客户端:

    • 已设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向你的服务账号密钥文件;
    • 或在代码中显式传入认证配置:
      const { ImageAnnotatorClient } = require('@google-cloud/vision');
      const client = new ImageAnnotatorClient({
        keyFilename: '/path/to/your/service-account-key.json'
      });
      

    客户端未正确初始化会导致textDetection请求一直处于pending状态,无法返回响应。

  • 捕获并处理所有异常
    当前代码的catch块仅捕获textDetection的Promise异常,但如果req.file不存在时调用textDetection,可能出现未被捕获的错误。建议添加前置判断(如上面日志示例中的if (!req.file)),同时在全局添加错误中间件,避免请求因未处理的异常挂起:

    app.use((err, req, res, next) => {
      console.error("全局错误:", err);
      res.status(500).send("服务器内部错误");
    });
    

内容的提问来源于stack exchange,提问作者Kunal Pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:36:29