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

Node.js与原生JS下如何将Ag-Grid行数据数组传至后端

解决方案

核心问题说明

你用module.exports导出前端rowData的思路完全错误——前后端是完全独立的运行环境,前端浏览器里的变量没法直接通过require在Node.js后端获取,这是跨环境的逻辑错误。


前端:通过POST请求传递rowData

前端需要把构建好的rowData通过HTTP POST请求发送到后端,而不是尝试导出变量:

async function getLiquidity() {
  // 你的原有逻辑:构建rowData数组
  const rowData = [...]; // 已确认能正确生成的数组
  console.log(rowData);

  try {
    // 发送POST请求到后端接口
    const response = await fetch('/api/submit-liquidity', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(rowData), // 将数组转为JSON字符串传递
    });
    const result = await response.json();
    console.log('数据提交成功:', result);
  } catch (err) {
    console.error('提交失败:', err);
  }
}

后端:接收并处理数据

后端需要配置路由接收前端的JSON数据,再交给Sequelize处理:

  1. 先确保Express项目配置了解析JSON的中间件:
const express = require('express');
const app = express();
// 必须配置这个,才能解析POST请求的JSON体
app.use(express.json());
  1. 创建对应的POST路由:
const Liquidity = require('./models/liquidity'); // 你的Sequelize模型

app.post('/api/submit-liquidity', async (req, res) => {
  try {
    const rowData = req.body; // 这里就是前端传过来的数组
    if (!Array.isArray(rowData) || rowData.length === 0) {
      return res.status(400).json({ error: '无效的数据格式' });
    }
    // 用Sequelize批量处理数据,示例用bulkCreate
    const result = await Liquidity.bulkCreate(rowData);
    res.status(200).json({ success: true, data: result });
  } catch (err) {
    console.error('数据处理失败:', err);
    res.status(500).json({ error: '服务器内部错误' });
  }
});

原方法失败的原因

  1. 浏览器环境不支持Node.js的module.exports语法,直接用会抛出ReferenceError;
  2. 后端require前端文件时,rowData是用户交互后才生成的,模块加载时根本不存在,所以后端拿到的是空值;
  3. 前后端没有共享内存,必须通过HTTP请求完成数据传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:20:41