2021年1月15日星期五

Heroku app produces different array than the same app that's run locally

I've deployed a Node/Express app on Heroku and it seems that the same Node.js code will produce entirely different arrays depending on whether it's being run on my local server, or on Heroku.

To start, the code of interest involves reading the contents of a CSV file. When I run the following code on my local server:

var fileContents = fs.readFileSync(__dirname + '/cell_information.csv');  var rows = fileContents.toString().split('\r\n');  console.log(rows);  console.log("rows length: " + rows.length);  

I log the following in my local console:

[    [ '0', 'A', 'y' ],  [ '1', 'A', 'y' ],  [ '2', 'A', 'y' ],    [ '3', 'A', 'y' ],  [ '4', 'A', 'y' ],  [ '5', 'A', 'y' ],    [ '6', 'A', 'y' ],  [ '7', 'A', 'y' ],  [ '8', 'A', 'y' ],    [ '9', 'A', 'y' ],  [ '10', 'B', 'y' ], [ '11', 'B', 'y' ],    [ '12', 'B', 'y' ], [ '13', 'B', 'y' ], [ '14', 'B', 'y' ],    [ '15', 'B', 'y' ], [ '16', 'B', 'y' ], [ '17', 'B', 'y' ],    [ '18', 'B', 'y' ], [ '19', 'B', 'y' ], [ '20', 'C', 'y' ],    [ '21', 'C', 'y' ], [ '22', 'C', 'y' ], [ '23', 'C', 'y' ],    [ '24', 'C', 'y' ], [ '25', 'C', 'y' ], [ '26', 'C', 'y' ],    [ '27', 'C', 'y' ], [ '28', 'C', 'y' ], [ '29', 'C', 'y' ],    [ '30', 'D', 'y' ], [ '31', 'D', 'y' ], [ '32', 'D', 'y' ],    [ '33', 'D', 'y' ], [ '34', 'D', 'y' ], [ '35', 'D', 'y' ],    [ '36', 'D', 'y' ], [ '37', 'D', 'y' ], [ '38', 'D', 'y' ],    [ '39', 'D', 'y' ], [ '40', 'E', 'y' ], [ '41', 'E', 'y' ],    [ '42', 'E', 'y' ], [ '43', 'E', 'y' ], [ '44', 'E', 'y' ],    [ '45', 'E', 'y' ], [ '46', 'E', 'y' ], [ '47', 'E', 'y' ],    [ '48', 'E', 'y' ], [ '49', 'E', 'y' ]  ]  rows.length: 52  

After deploying this app (with the same code above) to Heroku and checking the Heroku logs, I get the following:

2021-01-16T02:47:44.853795+00:00 app[web.1]: [  2021-01-16T02:47:44.853805+00:00 app[web.1]: 'CELL,TYPE,ANSWER\n' +  2021-01-16T02:47:44.853805+00:00 app[web.1]: '0,A,y\n' +  2021-01-16T02:47:44.853806+00:00 app[web.1]: '1,A,y\n' +  2021-01-16T02:47:44.853806+00:00 app[web.1]: '2,A,y\n' +  2021-01-16T02:47:44.853806+00:00 app[web.1]: '3,A,y\n' +  2021-01-16T02:47:44.853807+00:00 app[web.1]: '4,A,y\n' +  2021-01-16T02:47:44.853807+00:00 app[web.1]: '5,A,y\n' +  2021-01-16T02:47:44.853807+00:00 app[web.1]: '6,A,y\n' +  2021-01-16T02:47:44.853807+00:00 app[web.1]: '7,A,y\n' +  2021-01-16T02:47:44.853808+00:00 app[web.1]: '8,A,y\n' +  2021-01-16T02:47:44.853808+00:00 app[web.1]: '9,A,y\n' +  2021-01-16T02:47:44.853808+00:00 app[web.1]: '10,B,y\n' +  2021-01-16T02:47:44.853809+00:00 app[web.1]: '11,B,y\n' +  2021-01-16T02:47:44.853809+00:00 app[web.1]: '12,B,y\n' +  2021-01-16T02:47:44.853809+00:00 app[web.1]: '13,B,y\n' +  2021-01-16T02:47:44.853809+00:00 app[web.1]: '14,B,y\n' +  2021-01-16T02:47:44.853810+00:00 app[web.1]: '15,B,y\n' +  2021-01-16T02:47:44.853810+00:00 app[web.1]: '16,B,y\n' +  2021-01-16T02:47:44.853810+00:00 app[web.1]: '17,B,y\n' +  2021-01-16T02:47:44.853811+00:00 app[web.1]: '18,B,y\n' +  2021-01-16T02:47:44.853811+00:00 app[web.1]: '19,B,y\n' +  2021-01-16T02:47:44.853811+00:00 app[web.1]: '20,C,y\n' +  2021-01-16T02:47:44.853812+00:00 app[web.1]: '21,C,y\n' +  2021-01-16T02:47:44.853812+00:00 app[web.1]: '22,C,y\n' +  2021-01-16T02:47:44.853812+00:00 app[web.1]: '23,C,y\n' +  2021-01-16T02:47:44.853813+00:00 app[web.1]: '24,C,y\n' +  2021-01-16T02:47:44.853813+00:00 app[web.1]: '25,C,y\n' +  2021-01-16T02:47:44.853813+00:00 app[web.1]: '26,C,y\n' +  2021-01-16T02:47:44.853813+00:00 app[web.1]: '27,C,y\n' +  2021-01-16T02:47:44.853814+00:00 app[web.1]: '28,C,y\n' +  2021-01-16T02:47:44.853815+00:00 app[web.1]: '29,C,y\n' +  2021-01-16T02:47:44.853815+00:00 app[web.1]: '30,D,y\n' +  2021-01-16T02:47:44.853815+00:00 app[web.1]: '31,D,y\n' +  2021-01-16T02:47:44.853815+00:00 app[web.1]: '32,D,y\n' +  2021-01-16T02:47:44.853816+00:00 app[web.1]: '33,D,y\n' +  2021-01-16T02:47:44.853816+00:00 app[web.1]: '34,D,y\n' +  2021-01-16T02:47:44.853816+00:00 app[web.1]: '35,D,y\n' +  2021-01-16T02:47:44.853817+00:00 app[web.1]: '36,D,y\n' +  2021-01-16T02:47:44.853817+00:00 app[web.1]: '37,D,y\n' +  2021-01-16T02:47:44.853817+00:00 app[web.1]: '38,D,y\n' +  2021-01-16T02:47:44.853818+00:00 app[web.1]: '39,D,y\n' +  2021-01-16T02:47:44.853818+00:00 app[web.1]: '40,E,y\n' +  2021-01-16T02:47:44.853818+00:00 app[web.1]: '41,E,y\n' +  2021-01-16T02:47:44.853818+00:00 app[web.1]: '42,E,y\n' +  2021-01-16T02:47:44.853819+00:00 app[web.1]: '43,E,y\n' +  2021-01-16T02:47:44.853819+00:00 app[web.1]: '44,E,y\n' +  2021-01-16T02:47:44.853819+00:00 app[web.1]: '45,E,y\n' +  2021-01-16T02:47:44.853820+00:00 app[web.1]: '46,E,y\n' +  2021-01-16T02:47:44.853820+00:00 app[web.1]: '47,E,y\n' +  2021-01-16T02:47:44.853820+00:00 app[web.1]: '48,E,y\n' +  2021-01-16T02:47:44.853820+00:00 app[web.1]: '49,E,y\n'  2021-01-16T02:47:44.853821+00:00 app[web.1]: ]    rows length: 1  

As you can see, the Heroku log shows an array, but there is now a "+" character where there was "," character in the console output. Furthermore, the length of this array is now 1, instead of 52 like it was in the console output. Why isn't my Heroku app generating a standard array with length 52, and what can I do to resolve this issue.

https://stackoverflow.com/questions/65746111/heroku-app-produces-different-array-than-the-same-app-thats-run-locally January 16, 2021 at 11:08AM

没有评论:

发表评论