Node.js fs.ReadFile总是返回错误

时间:2014-02-26 22:39:40

标签: javascript node.js

我希望Node.js在域名为localhost:3000 / form时读取form.html,但由于某种原因,它总是给我一个错误500页。

fs.readFile的回调函数中的content参数未定义,即使文件的路径正确。

app.get('/form', function(req, res){
    fs.readFile('/form.html', function(error, content){
        if(error){
            // This get's always executed... I don't know why.
            // content = undefined.
            res.writeHead(500);
            res.end();
        }
        else{
            res.writeHead(200, { 'content-type' : 'text/html' });
            processFile(content);
            res.end(content, 'utf-8');
        }
    });
});

添加了错误消息:

  

{[错误:ENOENT,打开'C:\ form.html']错误:34,代码:'ENOENT',   路径:'C:\ form.html'}

我是否必须指定文件的完整路径......?

我删除后/我得到这条路径:

  

C:\用户\ deno_000 \ form.html

我的文件都在同一个目录中,在我的编辑器的左侧你可以看到它:

  

http://i59.tinypic.com/2eqdp2o.jpg

2 个答案:

答案 0 :(得分:2)

大多数文件系统中的

/ =根目录。

删除/或在form.html./form.html之前添加一个点。

.是当前目录

..是父目录

./form.html = [current directory]/form.html]

错误类似于找不到文件。

html文件需要与.js节点文件位于同一文件夹中才能生效。如果您在另一条路径中使用它,请使用该路径。 \

注意您也可以使用:

路径#

稳定性:3 - 稳定 此模块包含用于处理和转换文件路径的实用程序。几乎所有这些方法都只执行字符串转换。不查询文件系统以检查路径是否有效。

使用require('path')来使用此模块。

http://nodejs.org/api/path.html

答案 1 :(得分:0)

有同样的问题。使用__dirname修复它。