Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 August 13

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
¿hope
А должно ли все быть черным или белым, разве нельзя найти какой-то баланс между микросервисами и монолитной архитектурой?
Есть такой баланс, оба принципа можрл использовать в одном проекте
источник

Р

Руслан in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Если все разделено на модули и слои, то все ок.
А есть лекция про то как разделять на слои?
источник

D

Danylo in NodeUA - JavaScript and Node.js in Ukraine
есть, но она платная (если что не реклама) https://rozetka.com.ua/150329845/p150329845/?gclid=EAIaIQobChMI25HZs_mY6wIVjqiyCh0k-QgNEAYYAyABEgIqwfD_BwE
источник

VK

Vlad Kolomoets in NodeUA - JavaScript and Node.js in Ukraine
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Руслан
А есть лекция про то как разделять на слои?
источник
2020 August 14

Р

Руслан in NodeUA - JavaScript and Node.js in Ukraine
Спасибо! Дело в том что это больная тема для меня. Мне достался в наследство монолит без документации. Там было очень много абстракции которые мне было тяжело понять. на внесение изменений уходило много времени.
Скрепя сердцем было принято решение разодрать монолит на микросервисы. Работа пошла, но теперь я комплексную по этому поводу.
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
Подскажите, хочу прочесть с помощью стримов только первую строчку каждого файла, но читаю только в одном файле, а дальше не знаю, как сделать, чтобы пропустить чтение и перейти к следующему файлу, поэтому сразу выхожу в close.

const folder = process.argv[2];

async function print(folder) {
 const dirents = await fs.promises.readdir(
   folder,
   { withFileTypes: true }
 );
 const files = dirents.filter(d => d.isFile());
 for (const { name } of files) {
   const rl = readline.createInterface({
     input: fs.createReadStream(`${folder}/${name}`)
   });
   rl.on('line', line => {
     console.log(line);
     rl.close()
   });
   rl.on('close', () => {
     process.exit(0);
   });
 }
}
print(folder);
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
а в чем проблема закрыть стрим?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Может вам интерфейс здесь не подходит?
открываете стрим на чтение, запоминаете его хендл, читаете, закрываете.
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
Но мне остальные файлы ещё нужно прочитать в for of.
Окей, я пока не понимаю.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
for ( ... ) {
 const stream = fs.createReadStream(...);
 stream.read(...);
 stream.close()
}
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
Alexander
for ( ... ) {
 const stream = fs.createReadStream(...);
 stream.read(...);
 stream.close()
}
Он так весь файл не прочитает? Мне просто только первую строку или там можно задать.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
почитайте документацию, там вроде в байтах задается величина
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Единственное о чем здесь стоит отметить это синхронная работа цикла. То есть пока ваш процесс будет занят этой задачей, остальные процессы будут ждать завершения этого цикла. Тут нужно вам почитать про Event Loop
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
окей, на for await заменить. Как я ещё узнаю количество байт в первой строке файла, я пока тоже не знаю.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
для этого нужно понимать что является первой строкой и что является разделителем этих строк
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
разделитель \n, но я ещё файл не читал, а мне уже количество байт должно быть известно.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
можно прочитать з запасом, например 1-ый килобайт, и так далее, пока не встретите нужный вам разделитель
источник

Н

Новичок in NodeUA - JavaScript and Node.js in Ukraine
спасибо!
источник