利用js node.js写一个命令工具httprequest url,该工具可以向服务器请求url标识的网页内容,并将内容显示在屏幕上,在获取到响应之前,在屏幕上输出“正在获取服务器端的数据,请等待...”,并且使省略号个数每100ms增加一个
时间: 2024-10-19 10:10:42 浏览: 16
要在Node.js中使用`http`模块创建一个简单的命令行工具,你可以按照以下步骤操作:
首先,安装`yargs`库作为命令行解析工具(如果你还没有安装),可以运行:
```bash
npm install yargs
```
然后,创建一个名为`http_request.js`的文件,添加以下代码:
```javascript
const http = require('http');
const yargs = require('yargs');
// 解析命令行参数
const argv = yargs
.option('url', {
alias: 'u',
describe: 'The URL to fetch',
type: 'string',
demandOption: true,
})
.help()
.alias('h', 'help').argv;
if (!argv.url) {
console.log(yargs.getUsage());
process.exit(1);
}
function printLoader(n) {
const loader = Array(n + 1).join('.');
console.clear();
console.log(`正在获取服务器端的数据,请等待... ${loader}`);
}
async function fetchPage(url) {
let count = 0;
return new Promise((resolve, reject) => {
http.get(url, (res) => {
printLoader(count++);
if (res.statusCode === 200) {
resolve(res);
} else {
reject(res);
}
}).on('error', (err) => {
reject(err);
});
});
}
(async () => {
try {
await fetchPage(argv.url);
const response = await new Response();
// 打印接收到的内容
console.log(`服务器返回的内容:\n${response.body}`);
} catch (error) {
console.error('请求失败:', error.message);
}
})();
```
这个脚本会接受命令行参数`url`,并使用`http.get()`函数发送请求。当请求还在处理中时,它会在控制台打印出加载进度的省略号。如果请求成功,会打印出页面内容;如果请求失败,会打印错误信息。
运行此工具的方式如下:
```bash
node http_request.js -u https://example.com
```
阅读全文