【发布时间】:2019-12-07 20:47:16
【问题描述】:
我正在尝试使用 roder 中的 net.connect 连接到节点 http 服务器套接字 (expressJs),以将该套接字传递给我的 repl,以便能够基本上连接到我的 http 服务器并启动命令。
当我尝试这个时,我在启动 repl 的第二秒得到了错误 EPIPE。
这里是repl的代码:
const args = process.argv.slice(2);
if (args.length < 1) {
process.exit(1);
}
const url = args[0];
const [host, port] = url.split(':');
//this will get the url to connect to
const socket = net.connect(parseInt(port), host);
process.stdin.pipe(socket);
socket.pipe(process.stdout);
Console.start({
expose: { container, Metric:metricsObject},
socket:socket
});
启动函数:
start(options = {}) {
const { expose, socket } = options;
const repl = REPL.start({
eval: promisableEval,
terminal:true,
input: socket,
output: socket,
});
Object.assign(repl.context, expose);
}
http 服务器正在运行:
const http = this.express
.listen(this.config.web.port, () => {
const { port } = http.address();
this.logger.info(`[p ${process.pid}] Listening at port ${port}`);
resolve();
});
this.express 只是 express 的一个实例:this.express = express();
【问题讨论】:
标签: javascript node.js express read-eval-print-loop