Проблема со чтением файла, разводоением первого символа

Я пишу модуль для Nodejs и столкнулся с серьёзной проблемой!
Вот код:

const fs = require('fs');

let fd = null;
let pos = 0;

function open(fname) {
	if(!fs.existsSync(fname))
		return false;
	fd = fs.openSync(fname, 'r');
	return true;
}

function close() {
	if(!fd)
		return false;
	fd = null;
	return true;
}

function nextLine() {
	let buf = Buffer.allocUnsafe(50);
	let str = "";
	while(true) {
		let len = fs.readSync(fd, buf, 0, 50, pos);
		if(len === 0 && str.length === 0)
			return null;
		if(len === 0)
			break;
		for(let k=0; k<len; k++) {
			//console.log('buf['+k+']='+buf[k]);
			if(buf[k] == 10) {
				pos += k;
				console.log(buf.toString().substr(0, k+1))
				str+=buf.toString().substr(0, k+1);
				break;
			}
		}
		pos+=len;

		str+=buf.toString().substr(0, len);
	}
	
	return str;
}

module.exports = {
	open: open,
	close: close,
	nextLine: nextLine
}

Вот так можно проверить:

var f = require('./module');

console.log(f.open('./f'));
console.log(f.nextLine());
console.log(f.close());

Когда я выполняю этот код я вижу вот такой странный вывод:

true
A

A
A

true

Текст файла f:

A

То есть вывод в функции совсем другой чем тот который конкатенируется с str!! Я тысячу раз проверил и проблема не в коде, что делать?

Хай. А в файле точно только один символ? Може там есть еще перенос строки?
так как substr возвращает все символи с нулевого по ХХ,
первий раз возможно вивело A и перенос строки
Второй раз А+А+ перенос строки ?