由fs.writeFileSync生成的文件顶部有未定义的词

问题描述 投票:0回答:1

我想获取所有以scene开头的Markdown文件(例如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
-->

我以为writeFileSyncreadFileSync完成之前曾尝试写内容。因此,我添加了一些控制台日志。但是顺序似乎正确:

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

可能是什么问题?以及如何解决?

node.js file fs
1个回答
0
投票

结果是不确定的,将其设置为空字符串。

let result = ''

尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.