错误:使用__dirname ENOENT

时间:2016-06-13 15:41:46

标签: node.js rest express

我用快递来写我的网站。这是我在server.js中的代码

gulp.task('coffee', function() {
    return gulp.src('app/coffee/**/*.coffee')
    .pipe($.changed('./app/js/', {extension: '.js'}))
    .pipe($.coffee())
        .on('error', logCoffeeError)
    .pipe(gulp.dest('app/js/'));
});

我的项目结构:

app.use(express.static('public'));
app.get('/add', function (req, res) {
res.sendFile(__dirname + "/" + "add.htm");})

但是当我试图转到http://localhost:9000/add时,我收到了这个错误:

错误:ENOENT,stat' ... \ Project \ REST \ core \ add.html'    在错误(本机)

为什么在核心文件夹中查找add.html?

1 个答案:

答案 0 :(得分:0)

  

为什么在核心文件夹中查找add.html?

因为__dirname反映了使用它的JS文件的目录(反映了当前的工作目录)。

如果您的文件是core/server.js,那么__dirname就是FULL-PATH-TO/core/

add.html相对于server.js的路径是:

__dirname + "/../public/add.html"