NodeJS中模块的应用程序基本path

我正在NodeJS中构build一个Web应用程序,并在不同的模块中实现我的API路由。 在我的一个路线中,我正在做一些文件操作,我需要知道基本的应用程序path。 如果我使用__dirname它给了我当然包含我的模块的目录。

我目前正在使用它来获取基本的应用程序path(假定我知道从基本path模块的相对path):

 path.join(__dirname, "../../", myfilename) 

有没有比使用../../更好的方法? 我正在Windows下运行节点,所以没有process.env.PWD ,我不想成为特定于平台的。

使用__dirname的方法是最可靠的。 它会一直给你正确的目录。 你不必担心在Windows环境下的../../ ,因为path.join()会照顾到这一点。

有一个替代解决scheme。 你可以使用process.cwd() ,它返回process.cwd()的当前工作目录。 如果从基本应用程序目录执行节点应用程序,该命令正常工作。 但是,如果从不同的目录执行节点应用程序,比如它的父目录(例如node yourapp\index.js)那么__dirname机制将会更好。

我希望这会有所帮助。