如何将旧的同步服务器端javascript迁移到node.js

如何将旧的同步服务器端javascript迁移到node.js,javascript,mysql,node.js,asynchronous,Javascript,Mysql,Node.js,Asynchronous,我必须处理大量使用旧技术开发的代码:Netscape IWS服务器端javascript(SSJS)。我意识到,通过一些技巧和自动转换,您可以使SSJS代码在Node.js中几乎不发生变化。 我遇到的问题是,对数据库的SSJS查询是以同步方式编写的: var cursor=database.cursor(sqlRequest); while(cursor.next()) { //do the stuff } 我想尝试的解决方案是为数据库和游标SSJS本机对象声明原型,并

我必须处理大量使用旧技术开发的代码:Netscape IWS服务器端javascript(SSJS)。我意识到,通过一些技巧和自动转换,您可以使SSJS代码在Node.js中几乎不发生变化。 我遇到的问题是,对数据库的SSJS查询是以同步方式编写的:

var cursor=database.cursor(sqlRequest);
while(cursor.next())
    {
    //do the stuff
    }
我想尝试的解决方案是为
数据库
游标
SSJS本机对象声明原型,并用节点mysql模拟它们的行为:

function Database() {
    // initialize database connection
}
Database.prototype.cursor = function(sqlRequest) {
  //here is the difficult part: how to access the query result
  //without providing a callback function ?
  return new Cursor(data);
};
function Cursor(data) {...}
Cursor.prototype.next = function() {..};
global.database= new Database();
您可以看到,为了编写
Database.cursor
函数的主体,我应该以同步方式使用
connection.query

我知道这个话题已经讨论了很多次(,或),强制NodeJ同步运行不是一个好主意,但在我的例子中,这将节省对现有代码的大量重构…

ES6 generators+continuation library like?好主意。我将探讨这种方法。