爸爸解析第一个用引号呈现的标题字段

Pau*_*aul 2 mongoose mongodb papaparse

我在服务器上运行 papa parse 来读取和解析一个 csv 文件,使用以下代码:

function getData() {
    console.log("Started getData...");
    const file = fs.createReadStream(filePath);
    papa.parse(file, {
        header: true,
        complete: createRecord
    });
}
Run Code Online (Sandbox Code Playgroud)

我的完整回调函数如下所示:

function createRecord(row, file) {
    records = row.data;
    console.log("Started createRecord...");
    records.forEach((record) => {
        console.log(record)
        Activity.create(record);
    });
}
Run Code Online (Sandbox Code Playgroud)

然后我将其写入 MondoDB 数据库。除了 papa 解析的第一个字段名称外,一切都运行良好。console.log(record)上面调用的记录输出如下所示:

{
  'Activity_Date': '2018-08-28',
  Time_Start: '2018-08-28 20:20',
  Time_End: '2018-08-28 21:01',
  Duration: 0.027962963,
  Subject: 'CS410',
  Semester: 'Fall 2018',
  Week: 1,
  Task: 'Lectures',
  Day: 2
}
Run Code Online (Sandbox Code Playgroud)

注意周围的引号Activity_Date。这会导致 Mongo 忽略第一个字段,只将其余字段提交到数据库。

尝试以不同方式编辑 csv 文件并没有产生任何有用的结果。奇怪的是,如果我查看来自 papa parse 的元数据,它会为我提供没有 qoutes 的字段名称。

活动的 Mongo 模式如下所示:

const mongoose = require("mongoose");

const activitySchema = new mongoose.Schema({
    Activity_Date: String,
    Time_Start: String,
    Time_End: String,
    Duration: Number,
    Subject: String,
    Semester: String,
    Week: Number,
    Task: String,
    Day: Number
});

module.exports = mongoose.model("Activity", activitySchema)
Run Code Online (Sandbox Code Playgroud)

非常欢迎任何有助于摆脱报价的帮助!

谢谢

小智 5

自问以来已经有一段时间了,但我会留下对我有用的东西。尝试在配置对象中使用它:

变换头:h => h.trim()