Node.js函数内变量的范围

时间:2015-04-25 22:35:04

标签: javascript node.js scope

我刚开始使用node.js,而在我写的一个小程序中,我在尝试传递变量时遇到了问题。

我有一个函数,我传递了一个从文件中读取的行。在该函数中创建该行的Mongoose模型并尝试将其保存到数据库中。这样工作正常,但是如果数据出现问题并且无法保存到数据库,我希望将其保存到文本文件中。

我添加了一个保存到文件的调用,文件被创建但始终为空。调试代码时,将显示控制台消息,并且在执行行中的该点处显示为空字符串。这是传递值的正确方法吗?

var parseRecord = function (line) {
    var arrayOfString = line.toString().split(" ");

    if (arrayOfString[0].substr(0,1) != '#'){
        var dbRecord = new LogEntry({
            logDateTime: arrayOfString[0] + ' ' + arrayOfString[1],
            serverIP: arrayOfString[2],
            requestMethod: arrayOfString[3],
            uriStem: arrayOfString[4],
            serverPort:arrayOfString[6],
            clientIP:arrayOfString[8],
            browserType:arrayOfString[9],
            referrerSite:arrayOfString[10],
            httpStatus:arrayOfString[11],
            bytesSent:arrayOfString[12],
            bytesReceived:arrayOfString[13],
            elapsedTime:arrayOfString[14]
        });

        dbRecord.save(function (err) {
            if (err) {
//                console.log("Skipped one record");
//                console.log("This is the skipped line:" + bufferedLine);
                fs.appendFile('skippedRecords.txt', line, function (err) {
                    if (err)
                        console.log("Could not write skipped record");
                });
                //skippedRecords++;
            } else {
                //insertedRecords++;
            }
        })
        //dbRecord.print();
    }
}

感谢您的任何建议。 --md

0 个答案:

没有答案