首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Next未定义为next(err)

Next未定义为next(err)
EN

Stack Overflow用户
提问于 2020-02-17 07:21:03
回答 1查看 123关注 0票数 1
代码语言:javascript
复制
    var fs = require('fs');
    var path = require('path');
    var walk = require('walk');
    var xml2js = require('xml2js');

    var jsonDir ;
    var convertXml = function (xml_dir, json_dir) {
        jsonDir =  json_dir;

        var walker = walk.walk(xml_dir, { followLinks: true });
        walker.on("errors", fDirWalkError);
        walker.on("end", fDirWalkEnd);
        walker.on("file", fDirWalkFile);

    }

    function fDirWalkError (err) {
        console.log ("fDirWalkError: " + err);
        next (err);
    }

    function fDirWalkEnd  () {
        console.log ("======= End of directory walk");
    }

    function fDirWalkFile (root, fileStat, next) {
        if (fileStat.name.indexOf(".xml") < 0) {
            console.log ("skipping file " + fileStat.name + " (does not end in .xml)");
            return;
        } else {
            var xml_file = path.resolve(root, fileStat.name);
            console.log ("xml file: " + xml_file);

            fs.readFile('xml_file', function (err, data) {
                if (err) {
                    console.log ("error reading file:" + xml_file);
                    next (err);
                }
                xml2js.parseString (data, function (err, json_obj) {
                    if (err) {
                        console.log (err);
                        next (err);
                    }
                    var json_string = JSON.stringify(json_obj, null, 2);
                    var json_file = path.resolve (jsonDir, path.basename(xml_file).replace(/\.xml$/, ".json"));
                    console.log ("json file: ", json_file);

                    fs.writeFile(json_file, json_string, "utf8", function (err) {
                        if (err) {
                            console.log ("error converting yin (%s) to json(%s)", xml_file, json_file);
                            next (new Error ("error converting xml(" + xml_file + ") to json(" + json_file + ")"));
                        }
                        else {
                            console.log ("Converted xml (%s) to json(%s)", xml_file, json_file);
                        }
                    });
                });
            });
        }
        next ();
    }

module.exports.convertXml = convertXml;




var path = require ('path'); 
var xml2js = require ('./xml2js');
console.log ("__dirname: " + __dirname); 
var templateDir = path.resolve (__dirname); 
var xmlDir = path.resolve (templateDir, "xml");
var jsonDir = path.resolve (templateDir, "jsons"); 
console.log( templateDir); 
xml2js.convertXml (xmlDir, jsonDir)

/User//Documents/GitHub//xml2js.js:19 next (err);^

(/UsersDocuments/GitHub//node_modules/walk/lib/walk.js:134:10):ReferenceError: next未在Walker.fDirWalkError (/User//Documents/GitHub//xml2js.js:19:9)、Walker.emit (events.js:321:20)、Walker._wPostFilesHandler、Array.forEach ()、Array.forEach()、Walker.next上定义。(/Users//Documents/GitHub//node_modules/walk/lib/walk.js:84:10) at /Users//Documents/GitHub//node_modules/walk/lib/walk.js:106:12的Walker._wLstatHandler as _wCurFileCallback

EN

回答 1

Stack Overflow用户

发布于 2020-02-17 07:30:09

取决于https://www.npmjs.com/package/walk的步行文档

下一个param是事件发送的第三个param。

在您的情况下,您使用的是

代码语言:javascript
复制
function fDirWalkError (err) {
    console.log ("fDirWalkError: " + err);
    next (err);
}

但是您没有从函数args中的模块中获得下一个函数

尝试将其放入您的处理程序args中。

像这样

代码语言:javascript
复制
function fDirWalkError (err, nodeStatsArray, next) {
    console.log ("fDirWalkError: " + err);
    next (err);
}

它应该能工作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60257616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档