0
我試圖同步讀取從節點的控制檯參數,我設法做到以下幾點:緩衝區充滿了Unicode的零
var load = function() {
const BUFFER_LENGTH = 1024;
const stdin = fs.openSync('/dev/stdin', 'rs');
const buffer = Buffer.alloc(BUFFER_LENGTH);
console.log('Provide parameter: ');
fs.readSync(stdin, buffer, 0, BUFFER_LENGTH);
fs.closeSync(stdin);
return buffer.toString().replace(/\n*/, '');
}
它的工作原理,但這裏有一個奇怪的事情:
var loadedValue = load();
console.log(loadedValue); // displays "a", if I typed "a", so the result is correct
console.log({loadedValue}); // displays {a: 'a\n\u0000\u0000....'}
當我將值包裝在一個對象中時,剩餘的BUFFER位顯示在一個字符串中。這是爲什麼?我怎樣才能擺脫它們?在創建對象之前對字符串進行regexp不起作用。