Node.js 错误 ENOENT,未更改任何内容时打开“文件/路径”

Posted

技术标签:

【中文标题】Node.js 错误 ENOENT,未更改任何内容时打开“文件/路径”【英文标题】:Node.js Error ENOENT, open "file/path" when nothing has been changed 【发布时间】:2014-02-25 14:44:55 【问题描述】:

好的,首先...我是 Node.js 的新手。我正在尝试将 word 文档转换为 html,然后将其废弃以获取内容。然后将其泵入现有引擎。

话虽如此,直到今天一切都还算顺利。我昨晚刚刚让 fs.writeFile 工作并离开了它。今天早上没有触摸它并尝试运行它我收到了这个:

这是调用错误的块。

//COPY TEMPLATE AND PASTE
fs.readFile("./Templates/TextBasedEvent.xml", function (err, data)
    if (err) 
        throw err;
           
    var contentHolder = data.toString(),            
        contentHolder = contentHolder.replace(/%EVENTNUMBER%/gi, id),
        contentHolder = contentHolder.replace(/%CONTENT%/gi, contents);
    fs.writeFile("./bin/xml/" + id + ".xml", contentHolder, function (err)
        if (err) 
            throw err;
        
    );
);

是否与变量在文件路径中的放置方式有关?还有它的 throw err 似乎很奇怪,它在变量所在的位置之间软返回。

谢谢!

编辑:问题在于换行符被拉入,变量。

【问题讨论】:

从日志看来 id 包含换行符。 是的,这是有道理的。我只是尝试了将 word 文件导出为 html 的方式有所不同。好像我只是忘记了那一步! 【参考方案1】:

在写入文件时有几件事可能会导致ENOENT

目标目录(在本例中为E:\Desktop\SniffIt\bin\xml)不存在。 文件名中的换行符(CR 和/或 LF)。

您应该使用proper XML parser 来读取您的输入文件。这可能会帮助您避免收到虚假的换行符。

【讨论】:

以上是关于Node.js 错误 ENOENT,未更改任何内容时打开“文件/路径”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 node.js 文件上传 ENOENT 错误?

node.js fs.rename() 错误 enoent

node.js - 错误:ENOENT:没有这样的文件或目录,取消链接

产生 ENOENT node.js 错误

使用 Node 8.9.4 LTS 安装 Sails.js 依赖项时,NPM“ENOENT:没有此类文件或目录错误”

Node JS - Grunt 任务中的 child_process spawn('npm install') 导致 ENOENT 错误