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

我是Node&JavaScript的新手,正在使用getter和setter的框架来完成这个任务。

gs.js我正在阅读的SQL文件的内容,我想读取文件,并把它放在一个string,所以从我的reader("SELECT * FROM INVENTORY", [])我可以做的reader(selectFrom("Inventory.sgl"), []) 。 从getter和setter方面来看,我将使用set方法来设置文件名的variables,get方法返回select语句。

基本上这是完成这个的正确方法? 我以前问过这个问题,但它下了文件阅读器的话题,应该是文件阅读器同步。 因为这只是服务器端,我的书说,它不必与同步方法。 真的,这更像是一个练习,帮助我更好地理解,如果有人能够帮助,那就是创造。

gs.js

 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; 

ora.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(); } }) }