【问题标题】:Node.js Error ENOENT, open "file/path" when nothing has been changedNode.js 错误 ENOENT,未更改任何内容时打开“文件/路径”
【发布时间】: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 的方式有所不同。好像我只是忘记了那一步!

标签: javascript node.js fs


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 2012-11-12
    • 1970-01-01
    • 2015-11-24
    • 2012-11-21
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多