【发布时间】:2016-12-26 10:00:06
【问题描述】:
执行以下代码时出现以下错误:
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 文件调用相同的函数打印未定义。
谁能帮忙
【问题讨论】:
-
使用
path.join(__dirname, '../my.xml') -
仍然报同样的错误
-
@Abhinav 我刚刚用一些静态文件路径在同一个文件中调用了你的函数,它工作正常并得到“找不到文件!!”,你能重新检查你的文件中的错误和行号吗?
-
你能告诉我你在哪里用过
path.join(__dirname, '../my.xml') -
它正在工作,但从另一个 js 文件调用相同的函数打印未定义。
标签: javascript json xml node.js