Javascript 节点Buffer.prototype.toString返回不完整的字符串
尝试使用Javascript 节点Buffer.prototype.toString返回不完整的字符串,javascript,node.js,csv,base64,buffer,Javascript,Node.js,Csv,Base64,Buffer,尝试使用缓冲区分析节点中的csv,但返回值似乎不完整: 代码: app.post('/upload/import', function(req, res) { var base64str = req.body // which returns data:text/csv;base64,VGhpcyBpcyBhIHRoaW5nDTQxMDIxMjE4NzINOTA5ODc2MTI0NQ0yOTIxMjc var data = base64str.substring(base64s
缓冲区分析节点中的csv,但返回值似乎不完整:
代码:
app.post('/upload/import', function(req, res) {
var base64str = req.body // which returns data:text/csv;base64,VGhpcyBpcyBhIHRoaW5nDTQxMDIxMjE4NzINOTA5ODc2MTI0NQ0yOTIxMjc
var data = base64str.substring(base64str.indexOf(',') + 1, base64str.length); \\ remove 'data:text/csv;base64,
var encoded = new Buffer(data, 'base64').toString('ascii');
console.log(encoded); // returns '2910387473thing'
});
当我通过base64服务运行这个确切的base64字符串时,我得到以下结果:
This is a thing
4102121872
9098761245
2921278901
9981223489
6482034847
3948820123
8483920383
3849201837
2910387473
base64字符串是vghpcybpcybhihroaw5ndtqxmdixmje4nzinota5odc2mti0nq0yotixmjc4otaxdtk5odeymjm0odknjq4mjazndg0nw0zotq4odiwmtizdtg0odm5mjazondmzg0otiwmtgznw0yotewmzg3ndcz
这是我验证base64正确性的站点:
截断我的数据时发生了什么情况?您是使用Express进行路由还是其他方式?不管是Express还是其他版本,你知道是什么版本吗?@Trott是的,Express,4.10.4。我还使用connect csv将csv数据检索到req.body。@bencripps我认为这是connect csv的问题,因为它没有更新到connect 4.x.x,其中有一些突破性的更改。更新:我删除了connect csv,只需将text/csv
作为允许的类型添加到body parser
——我得到了完全相同的结果,与被截断的base64相同。我决定简单地将结果作为text/plain
并用逗号分割。