javascript - nodejs - 在另一个 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;
    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(__dirname, xmlPath) 的更改后,它可以工作,但从另一个 js 文件调用相同的函数会打印未定义。

谁能帮忙

最佳答案

使用 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函数。

关于javascript - nodejs - 在另一个 js 文件中调用函数时打印未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035686/

相关文章:

javascript - 如何消除 Angular 垫按钮切换悬停效果?

php - Processmaker 中的 Jquery Ajaxing

javascript - 如何使用 Javascript 和 JSON 显示图像

javascript - 如何使用 HTML 表单和 Javascript 更新 JSON 文件?

c++ - 使用用户输入创建一个 json 数据库

java - Horizo​​ntalScrollView 与 EditText 向右跳转

xml - XSLT 对元素名称上的任何通用 XML 进行深度排序

javascript - 如何为谷歌折线图/谷歌折线图图例操作编写自己的自定义图例

c# - 使用自定义命名空间获取 XML 中的子节点

javascript - 将嵌套数组连接到向量?