這個程序不會在控制檯終止,我必須使用Ctrl-C。文檔沒有提供任何線索。嘗試了各種各樣的東西,如返回,但只是不能讓它終止,它只是掛在控制檯。控制檯中的最後一件事是'現在我們在這裏'。Nodejs程序不會終止
var fs = require('fs');
var path = require('path');
var co = require('co');
var prompt = require('co-prompt');
var program = require('commander');
program
.arguments('<file>')
.option('-i, --Object name <objectName>', 'DP device IP address')
.action(function(file) {
co(function *() {
var objectName = yield prompt('Object Name: ');
console.log('\nObject Name: %s file: %s',objectName, file);
notmain(file, objectName);
console.info('now we are here');
});
})
.parse(process.argv);
function notmain(file, objectName) {
try {
var normalPath = path.normalize(__dirname + '/' + file);
console.info('\nfile path ' + normalPath);
certstring = fs.readFileSync(normalPath).toString();
console.info('\nstring of cert file is \n' + certstring);
clientcert = fs.readFileSync(normalPath).toString('base64');
console.info('\nbase64 string of cert file is \n' + clientcert);
var newJson = {};
newJson.name = objectName;
newJson.content = clientcert;
var newfile = {"file": newJson};
console.info('\nnew json for cert object ' + JSON.stringify(newfile));
console.info('\nclient certificate read from directory ');
} catch (err) {
console.info('file path ' + normalPath);
console.info('client certificate file not found');
return;
}
}
,在process.exit(0),但其他的答案工作的唯一的事說是不得已而爲之。該程序顯然是在等待一些東西,我需要告訴它它已完成。 – Nepomuk
'co'沒有被定義,並且(不管它是什麼)看起來像需要告訴停止的東西。 – OrangeDog
co是使用生成器和承諾的異步代碼的包裝。它在頂部定義。 – Nepomuk