nodejs – 在另一个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; 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文件调用这个function

 commonFunction.getNodeValueFromXML("../my.xml",'user.name'); 

此前它给错误Failed: path must be a string Stack: 。 作为path.join(__dirname, xmlPath)作出更改后,它的工作,但从另一个js文件调用相同的function打印未定义。

有人可以帮忙吗?

使用path.join(__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函数。