开始我们先了解下Node.js提供的全局变量:

module.filename:开发期间,该行代码所在的文件。

__filename:表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。

始终等于 module.filename。

__dirname:当前执行脚本文件所在的目录。

process.cwd():返回当前进程的工作目录。

require.main.filename:用node命令启动的module的filename, 如 node xxx,这里的filename就是这个xxx。

一、   

const path = require('path');
const appDir = path.dirname(require.main.filename);

二、   

global.appRoot = process.cwd();//返回当前进程的工作目录
console.log('****************'+appRoot);

三、使用第三方模块app-root-path   

https://github.com/inxilpro/node-app-root-path