Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 读取文本文件并将数据插入数据库_Node.js_Express_Mariadb - Fatal编程技术网

Node.js 读取文本文件并将数据插入数据库

Node.js 读取文本文件并将数据插入数据库,node.js,express,mariadb,Node.js,Express,Mariadb,我有一个导出的文本文件,如下所示: 因此,它像一个表一样构建,并且是unicode编码的。我不创建导出文件,所以请不要告诉我使用csv文件 我已经有了一个mariadb数据库,其中有一个表,其中包含相应的标题(ID、名称等等) 我的目标是从文本文件中读取数据并将其正确插入数据库。我正在使用node js,我想知道为了实现我的目标,我需要遵循哪些步骤 你能使用这个指令吗?我已经尝试过这种方式,但是我认为Unicode编码引起了一些问题。 < p>您应该考虑使用CSV文件导入/导出任何列相关数据,

我有一个导出的文本文件,如下所示:

因此,它像一个表一样构建,并且是unicode编码的。我不创建导出文件,所以请不要告诉我使用csv文件

我已经有了一个mariadb数据库,其中有一个表,其中包含相应的标题(ID、名称等等)

我的目标是从文本文件中读取数据并将其正确插入数据库。我正在使用node js,我想知道为了实现我的目标,我需要遵循哪些步骤


你能使用这个指令吗?我已经尝试过这种方式,但是我认为Unicode编码引起了一些问题。

< p>您应该考虑使用CSV文件导入/导出任何列相关数据,它们有一个从它们中隐含的表格结构。

在本例中,您必须编写某种解析器,它一次读取一行文件,然后使用多个空格作为分隔符拆分数据,总体而言,这并不值得


搜索使用csv,甚至还有npm模块可与csv一起使用。

因此,您可以通过流来实现这一点。您可以将每一行读入缓冲区,解析它并将数据保存到数据库中

看看csv流库。它为您进行解析,您可以将其配置为使用tab作为分隔符

const csv = require('csv-streamify')
const fs = require('fs')

const parser = csv({
  delimiter: '\t',
  columns: true,
});

// emits each line as a an object with keys as headers and properties as row values
parser.on('data', (line) => {
  console.log(line)
  // { ID: '1', Name: 'test', Date: '2010', State: 'US' }

  // Insert row into DB
  // ...
})

fs.createReadStream('data.txt').pipe(parser)

导出的文件格式是什么?是否有任何分隔符?导出的文件是文本文件,列由单个选项卡分隔。使用SQL语句
LOAD DATA infle
。您可以将文本文件转换为以选项卡分隔的csv文件,并使用上述代码。或者,您可以自己在节点中解析文本文件。如果你上传了一个文件示例,我可以告诉你如何解析它。在我用你的文件示例测试了代码之后,我编辑了我的答案