Javascript nodejs-在另一个js文件中打印调用函数时未定义的

Javascript nodejs-在另一个js文件中打印调用函数时未定义的,javascript,json,xml,node.js,Javascript,Json,Xml,Node.js,我在执行以下代码时遇到以下错误: Failed: path must be a string Stack: TypeError: path must be a string at TypeError (native) at Object.fs.readFile (fs.js:250:11) 正在运行的代码如下所示: this.getNodeValueFromXML = function(xmlPath,node){ var self = this;

我在执行以下代码时遇到以下错误:

Failed: path must be a string
Stack:
  TypeError: path must be a string
      at TypeError (native)
      at Object.fs.readFile (fs.js:250:11)
正在运行的代码如下所示:

this.getNodeValueFromXML = function(xmlPath,node){
    var self = this;
    try {
        var file = path.join(__dirname, xmlPath)
        fs.readFile(file, function(err, data) {
            if(err){
                logger.warnLogger(err,'Error while processing XML file!!');
            }
            else{
                parser.parseString(data, function (err, result) {
                    if(err){
                        logger.warnLogger(err,'Not a valid file!!');
                    }
                    else {
                        var value=self.getValueFromJson(result,node);
                        return value;
                    }
              });
            }
        });
    }
    catch(e){
        if (e.code !== 'ENOENT') {
            throw e
        } else {
            logger.warnLogger(e,'File not found!'); 
        }
    }
};
我使用下面的语法从其他js文件调用这个
函数

commonFunction.getNodeValueFromXML("../my.xml",'user.name');
早些时候,它给出了错误
失败:路径必须是字符串堆栈:
。作为
path.join(uu dirname,xmlPath)
进行更改后,它可以工作,但从另一个
js
文件调用相同的函数会打印未定义的内容

是否有人可以帮助

使用
path.join(\uu dirname,../my.xml')
来解决以下问题:

Failed: path must be a string
Stack:
  TypeError: path must be a string
      at TypeError (native)
      at Object.fs.readFile (fs.js:250:11)

对于从另一个文件调用函数,我修改了代码以使用
callback
函数。

使用
path.join(\uu dirname,../my.xml')
仍然给出相同的值error@Abhinav我刚刚用一些静态文件路径在同一个文件中调用了你的函数,它工作正常,并且得到了“找不到文件!!”,您可以重新检查文件中的错误和行号吗?您可以告诉我您在哪里使用了
path.join(\uu dirname,../my.xml')
它正在工作,但从另一个js文件调用相同的函数会打印未定义的内容。