Node.js和Javascript; Getter和Setter方法的正确使用案例?

时间:2014-03-08 15:51:29

标签: javascript node.js

我是Node&的新手JavaScript并且正在使用getter和setter的框架来完成此任务。

gs.js我正在阅读一个SQL文件的内容,我想要读取该文件并将其放在一个字符串中,所以我可以reader("SELECT * FROM INVENTORY", []) reader(selectFrom("Inventory.sgl"), []) var sys = require('sys'); var fs = require('fs'); function selectFrom(sqlFile, selectStatement) { this.__defineGetter__('sqlFile', function() { console.log("Getting file " + sqlFile + " to select from."); console.log('About to read file.'); var fileName = "./SQLs/" + sqlFile; fs.readFile(fileName, 'utf8', function(err, data) { if (err) console.log("There was a problem opening " + sqlFile + "\nDetials:" + err); console.log("OK: " + fileName); selectStatement = data; }); return sqlFile; }) this.__defineSetter__('sqlFile', function(arg) { sqlFile = arg }) } var selectFrom = new selectFrom("on.sql") console.log(selectFrom.sqlFile); module.exports.selectFrom = selectFrom; 。从getter和setter方面看它,我将使用set方法设置文件名的变量,使用get方法返回select语句。

基本上这是实现这个目标的正确方法吗?我之前已经问过这个问题,但是它取消了文件阅读器的主题,应该是文件阅读器同步。由于这只是服务器端,我的书说它不一定是同步方法。真的,这更像是一个练习,以帮助我更好地理解,所以如果有人可以提供帮助,那将是创造。

gs.js

connection.setPrefetchRowCount(50);
var reader = connection.reader(selectFrom(Inventory.sql), []);

function doRead(cb) {
    reader.nextRow(function(err, row) {
        if (err) return cb(err);
        if (row) {
            console.log("got " + JSON.stringify(row));
            return doRead(cb)
        } else {
            return cb();
        }
    })
}

ora.js

{{1}}

0 个答案:

没有答案