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

Node.js连接PostgreSQL时遭遇JSON解析错误求助

错误排查:SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

这个错误的核心原因是:前端请求没有正确转发到Node.js后端,反而收到了前端的HTML页面(比如React的index.html),而非预期的JSON响应。以下是具体排查和修复步骤:

1. 先验证后端服务是否正常

先直接测试后端接口能否返回正确JSON:

  • 启动Node.js后端服务器
  • 在浏览器或Postman中访问 http://localhost:5000/api/TestConnection
  • 如果返回 {"message": "Connected to backend successfully!"},说明后端没问题;如果报错,优先修复后端服务。

2. 修正代理配置(关键)

你在package-lock.json配置代理是错误的位置,代理需要配置在**前端项目的package.json**中,或使用setupProxy.js(针对新版本Create React App):

方法一:package.json简单配置

在前端项目根目录的package.json末尾添加:

"proxy": "http://localhost:5000"

添加后重启前端开发服务器,确保代理生效。

方法二:setupProxy.js进阶配置(推荐)

如果你的Create React App版本是2.x及以上,在src目录下新建setupProxy.js文件,内容如下:

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:5000',
      changeOrigin: true,
    })
  );
};

完成后重启前端开发服务器。

3. 确保前后端服务同时运行

  • 启动Node.js后端(端口5000)
  • 启动React前端开发服务器(默认端口3000)
  • 此时前端请求/api/TestConnection会被代理到http://localhost:5000/api/TestConnection

4. 额外检查点

  • 确认后端路由大小写:你的后端路由是/api/TestConnection,前端请求路径一致,没问题;如果大小写不匹配会返回404 HTML错误页。
  • 增强前端错误排查:在fetch中先判断响应状态,更直观定位问题:
    fetch('/api/TestConnection')
    .then(response => {
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        return response.json();
    })
    

5. PostgreSQL连接的前置提示

当前错误和PostgreSQL无关,但提前注意:

  • 确保PostgreSQL服务正在运行(端口5432)
  • 确认数据库GamingWorld已创建,users表存在
  • 可以添加测试连接的代码:
    pool.connect((err, client, release) => {
      if (err) {
        return console.error('Error acquiring client', err.stack);
      }
      console.log('Connected to PostgreSQL successfully!');
      release();
    });
    

内容的提问来源于stack exchange,提问作者Or ifrach

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:05:27