有一个带有postgres db的现有Django应用程序。无法改变(由于某种原因),用户希望自动上传报告,而不是按钮,他们必须点击上传单个报告(可理解)
我只是编写一个小的Node.js脚本(它将附加到另一个节点App)以将.csv
文件读取到json string
并通过post发送到db 。只是在我进行自动化之前测试它。
问题是当我发送数据时,数据开头似乎隐藏了?
?Number,Name,Date,Foo,Bar
这会导致读表的问题。
代码我正在使用
const request = require('request')
const fs = require('fs')
fs.readFile('users.csv', utf8, function(err, data) {
var sentData = JSON.stringify(data)
request.post('/api/user/set_data').form(sentData)
})
我猜这与"
有关,因为它在数据中也会转换为(
)
tp %28
和%29
,但没有隐藏\r\n"
如果我有一点小提琴 fs.readFile(' users.csv',(错误,数据)=> console.log(错误,字符串(数据)))
我可以看到null 'Number,Name,Date,Foo,Bar
CSV中没有空值或空值
答案 0 :(得分:0)
因此,这是导致问题的BOM
您可以在第一个标头前看到空值。
我做了npm i strip-bom
现在有了
const request = require('request')
const fs = require('fs')
const stripBom = require('strip-bom')
fs.readFile('users.csv', utf8, (err, data) => {
var strippedData = stripBom(data)
var sentData = JSON.stringify(strippedData)
request.post(`${location}/set_data`).form(sentData)
})
这一切都很有效