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
并用逗号分割。