如何将--url选项的值作为参数传递给WGET命令

#!/usr/bin/env node
'use strict';

const commander = require('commander');
const { exec } = require("child_process");
const program = new commander.Command();

program
  .option('-u, --url <value>', 'Website address');

program.parse(process.argv);

const options = program.opts();

if (options.url) {
        exec("wget ${options.url}", (error, stdout, stderr) => {
            if (error) {
                console.log(`error: ${error.message}`);
                return;
            }
            if (stderr) {
                console.log(`stderr: ${stderr}`);
                return;
            }
            console.log(`stdout: ${stdout}`);
        });
}

输出:

node app.js --url ff99cc.art
error: Command failed: wget ${options.url}
/bin/bash: line 1: ${options.url}: bad substitution

有必要将--url值作为wget的参数传递.因此,当您执行 node 命令app.js--url Example.com时,她正在执行wget Example.com.

Solved感谢Spyrospal和Ibrahim Tanyalin 问题是如何使用字符串插值法来格式化wget命令.如此处所述,应使用反号(`)字符,而不是双引号:

exec(`wget ${options.url}`, (error, stdout, stderr) => {

推荐答案

问题是如何使用字符串插值法来格式化wget命令. 如前所述,here应包含反引号(`)字符,而不是双引号:

exec(`wget ${options.url}`, (error, stdout, stderr) => {

Node.js相关问答推荐

如何使用jq将依赖项添加到package.json中

如何将信号从终端窗口发送到运行在Raspberry Pi上的Puppeteer/Node.js上的webscraper

当FastifyJS向客户端发送响应时,apache 不会将其发送给他

如何使用聚合管道交换键值对

使用pm2启动服务器

使用mongoose 创建新文档并仅取回选定的字段

获取用户 ID 后,Firebase 函数 onCreate 方法在 Firestore 上不起作用

mongoose.model() 方法返回未定义

在 Express.js 中迭代子文档数组

Node.js 大文件上传到 MongoDB 阻塞了事件循环和工作池

为什么需要在 NodeJS 应用程序中创建服务器?

使用新react 18.0.0 的 create-react-app my-app redux 错误

eslint - vscode 的可选链接错误

webpack css-loader 在外部样式表的 url() 引用中找不到图像

在单独的模块中定义 Mongoose 模型

node.js 在控制台上显示未定义

路由后的 Node Express 4 中间件

npm install - javascript堆内存不足

我可以让 node --inspect 自动打开 Chrome

promise 回调返回promise