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

Express 如何在文件夹层次结构中使用_dirname,express,Express,我的应用程序结构是: /app /css /js .. /script /server.js 我试图在使用时使用_dirname指向/app文件夹 app.use(express.static( __dirname + '/app')); 我真的不知道在网上搜索什么,请帮忙。如果你在server.js,那么你的意思是 app.use(express.static( __dirname + '/../app')); __dirname只是一个字符串,

我的应用程序结构是:

 /app
     /css
     /js
     ..
 /script
    /server.js
我试图在使用时使用_dirname指向/app文件夹

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

我真的不知道在网上搜索什么,请帮忙。

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

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

__dirname只是一个字符串,您可以对它进行字符串操作

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\一点

您可以使用该模块

路径模块提供用于处理文件和目录路径的实用程序


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

var publicFolder = __dirname + '/public/';
config.public_folder = publicFolder;
然后,无论何时需要访问此文件夹,或者在子文件夹或路由的代码中的其他位置,都需要插入public folder变量。然后像这样使用它:

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

为什么要投否决票?我认为这个问题是合法的。我在express.js文件中,“/../”没有翻译,结果显示“当前目录\路径/./app”,找不到该文件。。。你知道为什么吗?我在Ubuntu上,同样的语法在其他地方起作用,但在express.js文件中不起作用。你的文件夹结构和原来的问题一样吗?不,我的目录结构改变了,我的问题是“../../”语法告诉它应该从当前文件路径返回,没有翻译,它正在尝试在“drive:/desktop.././favicon.ico”中查找文件。此处提到的路径是一个虚拟路径,仅传达了它在实际环境中的翻译方式。请在回答中添加简短的解释。
  res.sendFile(config.public_folder+'unsubscribed-success.html');