gpt4 book ai didi

javascript - 在 Node.js 中,使用 Prompt 请求值,并在主 js 文件中使用该值

转载 作者:太空宇宙 更新时间:2023-11-04 03:07:46 25 4
gpt4 key购买 nike

我对 还很陌生它看起来相当容易使用,但是当涉及到使用命令行获取值并返回该值以在另一个包或 .js 中使用时,它似乎比我预期的要困难。

长话短说,我用过 包 (akamai-ccu-purge),输入要在 上清除的文件网络成功。

我想让它更加动态,通过提示用户输入他们想要清除的文件,然后在 中使用它。包。

使用 var stdin = process.openStdin(); 进行几次尝试后,我实际上发现了另一个名为 Prompt 的 npm 包,它似乎更容易。但这两种方式似乎都有同样的问题。

Node 似乎不想停止输入。尽管我先调用了该模块,但它似乎想要自动进​​行清除而不等待输入。它实际上已经到了我应该输入文件的地步,但它不会等待。

我在这里的理解或用法中肯定遗漏了一些东西,我做错了什么?

到目前为止我的代码是:

var purgeUrl = require('./getUrl2');  

var PurgerFactory = require('../../node_modules/akamai-ccu-purge/index'); // this is the directory where the index.js of the node module was installed

// area where I placed the authentication tokens
var config = {
clientToken: //my tokens and secrets akamai requires
};

// area where urls are placed. More than one can be listed with comma separated values
var objects = [
purgeUrl // I am trying to pull this from the getUrl2 module
];

// Go for it!
var Purger = PurgerFactory.create(config);

Purger.purgeObjects(objects, function(err, res) {
console.log('------------------------');
console.log('Purge Result:', res.body);
console.log('------------------------');
Purger.checkPurgeStatus(res.body.progressUri, function(err, res) {
console.log('Purge Status', res.body);
console.log('------------------------');
Purger.checkQueueLength(function(err, res) {
console.log('Queue Length', res.body);
console.log('------------------------');
});
});
});

getUrl2 模块如下所示:

var prompt = require('../../node_modules/prompt'); 
//
// Start the prompt
//
prompt.start();

//
// Get property from the user
//
prompt.get(['newUrl'], function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
console.log(' http://example.com/custom/' + result.newUrl);
var purgeUrl = 'http://example.com/custom/' + result.newUrl;
console.log(purgeUrl);
module.exports = purgeUrl;
});

再次感谢您的帮助!

最佳答案

我可能只允许 getURL2 公开将在主模块中调用的方法。例如:

// getURL2

var prompt = require('../../node_modules/prompt');

module.exports = {
start: function(callback) {

prompt.start();

prompt.get(['newUrl'], function (err, result) {
// the callback is defined in your main module
return callback('http://example.com/custom/' + result.newUrl);
});

}
}

然后在你的主模块中:

require('./getUrl2').start(function(purgeURL) {
// do stuff with the purgeURL defined in the other module
});

实现可能有所不同,但从概念上讲,您需要使第二个模块(需要用户的某种输入)作为该输入的结果而发生。回调是实现此目的的常用方法(Promise 也是如此)。但是,由于 prompt 不一定公开需要 Promise 的方法,因此您可以使用普通的旧回调来完成此操作。

关于javascript - 在 Node.js 中,使用 Prompt 请求值,并在主 js 文件中使用该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com