Вверху моего файла есть слово undefined, созданное fs.writeFileSync. - PullRequest
0 голосов
/ 30 января 2020

Я хочу получить все файлы Markdown, начинающиеся со слова scene (например, scene-01.md), объединить их, а затем объединить их содержимое в файл.

Это код:

import * as fs from 'fs'
import * as path from 'path'

const dirname = path.join(__dirname, '../')
const filenameStart = 'scene'
const resultFileName = 'result.md'

var filenames = fs.readdirSync(dirname).filter(file => file.startsWith(filenameStart))

let result: string
filenames.forEach(filename => {
    console.log(filename)
    const content = fs.readFileSync(dirname + filename, 'utf-8')
    result += content
})

console.log('finished')

fs.writeFileSync(resultFileName, result)

Код работает, но в самом верху сгенерированного файла есть слово undefined (result.md):

undefined<!--
Scene: 1
-->

Я думал, writeFileSync пытался написать контент до того, как readFileSync было сделано. Поэтому я добавил несколько журналов консоли. Но порядок кажется правильным:

scene-01.md
scene-02.md
scene-03.md
scene-04.md
finished

В чем может быть проблема? И как это решить?

1 Ответ

1 голос
/ 30 января 2020

Результат не определен, установите пустую строку.

let result = ''

Попробуйте это.

...