我正在为 Node.js 设计和实现一个 API,以便使用x3270 工具通过 IBM3270 协议从 Ubuntu 访问 IBM 大型机。因此 Node.js 进程spawn
s3270
处理并使用它的stdin
,stdout
并stderr
与 IBM 大型机进行通信。
我已经实现了以下接口:
var hs = require('./hs');
var session = hs.createSession(opts);
session.on('error', function(err) {
console.log('ERROR: %s', err.message);
});
session.on('connect', function() {
console.log('** connected');
session.send('TRANS');
});
session.on('response', function(res) {
console.log(res);
session.disconnect();
});
session.on('disconnect', function() {
console.log('** disconnected');
session.close();
});
session.on('close', function() {
console.log('** closed');
});
session.connect();
一切运作良好。
问题如下。我想使用Q Promise 库来让使用我的 API 的客户端代码更有条理,并且还有 Node.js 之类的 API,其形式为session.send(trans, cb(err, res) {})
. 我没有意识到我应该如何send
以接受回调的方式实现该函数。
概括我的问题,我想知道像 API 一样设计 Node.js 我应该首先实现什么:
- 发出事件并使用它然后实现OR的简单
send(trans)
函数send('trans', cb(err, res) {})
- 首先实施
send('trans', cb(err, res) {})
(我不知道如何)然后实施事件或 - 像 API 一样实现 Node.js 的正确方法是什么
我正在寻找的是在设计 Node.js 之类的 API 时的一般工作流程和设计原则,这些 API也可以被 Q Promise 库使用。