admin管理员组

文章数量:1201801

Ok first off... I'm new to Node.js. I'm trying to convert a word document to HTML then scrapping it to obtain the content. Then pump it into an existing engine.

With that being said, everything was running fairly smoothly until today. I just got the fs.writeFile working last night and stepped away from it. This morning without touching it and trying to run it I receive this:

here's the block where the error is being called.

//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;
        }
    });
});

Does it have something to do with how the variable is placed in the file path? also the throw err for it just seems weird that it soft returned in between where the variable is.

Thanks!

Edit: The issue was with newline being pulled in, with the variable.

Ok first off... I'm new to Node.js. I'm trying to convert a word document to HTML then scrapping it to obtain the content. Then pump it into an existing engine.

With that being said, everything was running fairly smoothly until today. I just got the fs.writeFile working last night and stepped away from it. This morning without touching it and trying to run it I receive this:

here's the block where the error is being called.

//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;
        }
    });
});

Does it have something to do with how the variable is placed in the file path? also the throw err for it just seems weird that it soft returned in between where the variable is.

Thanks!

Edit: The issue was with newline being pulled in, with the variable.

Share Improve this question edited Feb 1, 2014 at 23:53 Dirly asked Feb 1, 2014 at 23:14 DirlyDirly 2451 gold badge4 silver badges11 bronze badges 2
  • 3 From the log it seems that the id contains a newline. – Kurt Pattyn Commented Feb 1, 2014 at 23:19
  • yup that makes sense. I just tried something different with the way the word file was exported to html. Seems I just forgot that step! – Dirly Commented Feb 1, 2014 at 23:52
Add a comment  | 

1 Answer 1

Reset to default 22

There are a few things that might cause ENOENT when writing a file.

  • The destination directory (in this case, E:\Desktop\SniffIt\bin\xml) does not exist.
  • A newline (CR and/or LF) in the filename.

You should be using a proper XML parser to read your input file. This would probably help you avoid the spurious newlines you're getting.

本文标签: