如何在文件夹层次结构中使用__dirname

我的应用程序结构是:

/app /css /js .. /script /server.js 

我正在尝试使用__dirname指向/ app文件夹

 app.use(express.static( __dirname + '/app')); 

我真的不知道要在网上search什么,请帮助。

如果你在server.js,那么你的意思是

 app.use(express.static( __dirname + '/../app')); 

你可以使用path模块。

path模块提供了用于处理文件和目录path的实用程序。

 const path = require('path'); app.use(express.static(path.join(__dirname, '..', 'app'))); 

__dirname只是一个string,你可以对其进行string操作。

 app.use(express.static(__dirname.substring(0, __dirname.indexOf("\\routes") + '\app')); 

我会说实话,我用它来达到不同的目的:

 res.sendFile('./uploads/' + req.params.id + '/' + req.params.filename, {"root": __dirname.substring(0, __dirname.indexOf("\\routes"))}); 

所以你可能需要使用/ vs \一点。

我做了一个简单的解决scheme,但它的作品。 在启动服务器脚本js中,您可以添加以下内容:

 var publicFolder = __dirname + '/public/'; config.public_folder = publicFolder; 

然后,无论何时您需要访问此文件夹其他位于子文件夹或path代码中的位置,您都需要注入公用文件夹variables。 并像这样使用它:

  res.sendFile(config.public_folder+'unsubscribed-success.html');