代码之家  ›  专栏  ›  技术社区  ›  ktutnik

如何在nodejs中创建使用文件相对路径的函数(模块内部)

  •  0
  • ktutnik  · 技术社区  · 6 年前

    我要做的是创建类似nodejs的函数 require . 你可以的 require("./your-file") 要求 了解文件 ./your-file 是调用模块的同级,而不指定文件的完整路径。

    我当前的问题是获取当前执行函数的目录( __dirname 执行函数的)

    我尝试了以下方法:

    • 使用 module.parent.fileName 调用方法用其他函数包装时失败。
    • By reading from V8 stack trace 差不多,但在测试运行程序内部运行时失败(Jest)

    这应该是一个简单的解决办法,也许我把它搞得太复杂了?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Dhaval Chaudhary    6 年前

    可能您应该使用:

    var path = require('path'); 
    //_dirname will give you the current position
    

    使用path包可以实现这一点。 find Documentation here

        2
  •  0
  •   ktutnik    6 年前

    两者 module.parent.fileName 和V8堆栈跟踪 工作正常 ,但如果在 index.js

    例子:

    //src/my-lib.js
    
    function myFunction(){
       const path = module.parent.fileName
       //do stuff
    }
    

    然后在 索引.js

    //src/index.js
    const lib = require("./my-lib")
    
    exports.myFunction = lib.myFunction
    

    如果导入 myFunction 索引.js 这个 path 检测到的将始终 /src/index.js