Node.js 脚本没有退出
Node.js Script doesn't exit
我是 Js 的菜鸟,但我试图通过编写 api 将文件从 irc 传输到我的服务器来让生活更轻松
经过一番挖掘后,我得到了一个下载文件的模块(下面的代码基于 npm xdcc)但是当我 运行 该模块时,它在完成命令后不会退出
例如。吐出来后'Download Complete'得按Ctrl+C退出
var irc = require('xdcc').irc;
var ProgressBar = require('progress');
var progress;
var connectIRC = function (bot, pack) {
var user = 'desu' + Math.random().toString(36).substr(7, 3);
var start = 0;
console.log('Connecting...');
var client = new irc.Client('irc.rizon.net', user, {
channels: ['#nibl'],
userName: user,
realName: user
});
client.on('join', function(channel, nick, message) {
if (nick !== user) return;
console.log('Joined', channel);
client.getXdcc(bot, 'xdcc send #' + pack, '.');
});
client.on('xdcc-connect', function(meta) {
console.log('Connected: ' + meta.ip + ':' + meta.port);
progress = new ProgressBar('Downloading... [:bar] :percent, :etas remaining', {
incomplete: ' ',
total: meta.length,
width: 20
});
});
var last = 0;
client.on('xdcc-data', function(received) {
progress.tick(received - last);
last = received;
});
client.on('xdcc-end', function(received) {
console.log('Download completed');
});
client.on('notice', function(from, to, message) {
if (to == user && from == bot) {
console.log("[notice]", message);
}
});
client.on('error', function(message) {
console.error(message);
});
};
module.exports.connectIRC = connectIRC;
另外,当 irc bot 不发送任何通知时,文件名用双引号引起来
例如。
数据包名称 = Node.mkv
如果 bot 发送通知则文件下载名称 = Node.mkv
如果 bot 没有发送任何通知,那么 name = "Node.mkv"(包括双引号)
如有任何帮助,我们将不胜感激
如果你想自动关闭你的 Node JS 应用程序,你必须调用全局进程对象的退出方法:
client.on('xdcc-end', function(received) {
console.log('Download completed');
process.exit()
});
我是 Js 的菜鸟,但我试图通过编写 api 将文件从 irc 传输到我的服务器来让生活更轻松 经过一番挖掘后,我得到了一个下载文件的模块(下面的代码基于 npm xdcc)但是当我 运行 该模块时,它在完成命令后不会退出 例如。吐出来后'Download Complete'得按Ctrl+C退出
var irc = require('xdcc').irc;
var ProgressBar = require('progress');
var progress;
var connectIRC = function (bot, pack) {
var user = 'desu' + Math.random().toString(36).substr(7, 3);
var start = 0;
console.log('Connecting...');
var client = new irc.Client('irc.rizon.net', user, {
channels: ['#nibl'],
userName: user,
realName: user
});
client.on('join', function(channel, nick, message) {
if (nick !== user) return;
console.log('Joined', channel);
client.getXdcc(bot, 'xdcc send #' + pack, '.');
});
client.on('xdcc-connect', function(meta) {
console.log('Connected: ' + meta.ip + ':' + meta.port);
progress = new ProgressBar('Downloading... [:bar] :percent, :etas remaining', {
incomplete: ' ',
total: meta.length,
width: 20
});
});
var last = 0;
client.on('xdcc-data', function(received) {
progress.tick(received - last);
last = received;
});
client.on('xdcc-end', function(received) {
console.log('Download completed');
});
client.on('notice', function(from, to, message) {
if (to == user && from == bot) {
console.log("[notice]", message);
}
});
client.on('error', function(message) {
console.error(message);
});
};
module.exports.connectIRC = connectIRC;
另外,当 irc bot 不发送任何通知时,文件名用双引号引起来 例如。 数据包名称 = Node.mkv
如果 bot 发送通知则文件下载名称 = Node.mkv
如果 bot 没有发送任何通知,那么 name = "Node.mkv"(包括双引号)
如有任何帮助,我们将不胜感激
如果你想自动关闭你的 Node JS 应用程序,你必须调用全局进程对象的退出方法:
client.on('xdcc-end', function(received) {
console.log('Download completed');
process.exit()
});