如何将旧的同步服务器端javascript迁移到node.js
我必须处理大量使用旧技术开发的代码:Netscape IWS服务器端javascript(SSJS)。我意识到,通过一些技巧和自动转换,您可以使SSJS代码在Node.js中几乎不发生变化。 我遇到的问题是,对数据库的SSJS查询是以同步方式编写的:如何将旧的同步服务器端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本机对象声明原型,并
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?好主意。我将探讨这种方法。