Ошибка типа [ERR_INVALID_ARG_TYPE]: Аргумент «chunk» должен быть аргументом типа string или Buffer. Полученный номер типа

#javascript #node.js #integer #string-conversion

Вопрос:

Я пытаюсь решить одну проблему в HackerEarth. И я использую javascript. Ниже приведен мой код.

 // Sample code to perform I/O:

process.stdin.resume();
process.stdin.setEncoding("utf-8");
var stdin_input = "";

process.stdin.on("data", function (input) {
    stdin_input  = input;                               // Reading input from STDIN
});

process.stdin.on("end", function () {
   main(stdin_input);
});



// Warning: Printing unwanted or ill-formatted data to output will cause the test cases to fail


// Write your code here
function main(input) {
var data = input.split('n');
var a = parseInt(data[0]);
var b = parseInt(data[1]);

var sum = a   b;
process.stdout.write(sum);


}
 

И всякий раз, когда я это компилирую, я получаю следующую ошибку

 Execution failed.

Stack Trace:
events.js:174
throw er; // Unhandled 'error' event
^

TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be one of type string or Buffer. Received type number
at validChunk (_stream_writable.js:258:10)
at SyncWriteStream.Writable.write (_stream_writable.js:292:21)
at main (/hackerearth/JAVASCRIPT_NODE_3789_1f3d_d89e_d4f9/s_d3fb_2843_f025_60ef.njs:28:16)
at ReadStream.<anonymous> (/hackerearth/JAVASCRIPT_NODE_3789_1f3d_d89e_d4f9/s_d3fb_2843_f025_60ef.njs:13:4)
at ReadStream.emit (events.js:194:15)
at endReadableNT (_stream_readable.js:1125:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at validChunk (_stream_writable.js:261:12)
at SyncWriteStream.Writable.write (_stream_writable.js:292:21)
[... lines matching original stack trace ...]
at process._tickCallback (internal/process/next_tick.js:63:19)
 

Всякий раз, когда я пытаюсь преобразовать входную строку в целое число, я получаю вышеуказанную ошибку. Я просто не мог выполнять какие-либо арифметические операции с входными данными.
Если у вас есть какие-либо предложения, пожалуйста, дайте мне знать…

Комментарии:

1. Преобразуйте сумму в экземпляр строки, а затем запишите ее

2. process.stdout это поток, который имеет ограничения на то, что вы можете в него отправлять. Преобразуйте в строку, как предлагает @AlokRaj. См. раздел process.stdout и возможность записи. писать

Ответ №1:

Я попробовал process.stdout.напишите(«» сумма); и это сработало для меня.

Комментарии:

1. Вам следует расширить этот ответ, чтобы указать, почему он работает.