我是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}}