Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 15.09.2020
Сообщений: 30

Не выполняется action у Commander.js

23.07.2021, 21:22. Показов 2372. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Command } from "commander/esm.mjs";
import fs from 'fs'
const program = new Command()
program
    .version('0.0.4', '-V, --version', 'output the version number')
    .description('Compares two configuration files and shows a difference.')
    .option('-f, --format [type]', 'output format')
    .arguments('<filepath1> <filepath2>')
    .action((filepath1, filepath2) => {
        return compare(filepath1, filepath2)
    })
 
function compare (filepath1, filepath2) {
    const file1 = JSON.parse(fs.readFileSync(filepath1, {encoding:'utf8', flag:'r'}))
    const file2 = JSON.parse(fs.readFileSync(filepath2, {encoding:'utf8', flag:'r'}))
    const keysFile1 = Object.keys(file1)
    const keysFile2 = Object.keys(file2)
    const commonKeys = keysFile1.concat(keysFile2.filter((key) => (
        keysFile1.indexOf(key) === -1
    ))).sort()
    let sortedObj = {}
    for (const key of commonKeys) {
        //console.log(key)
        if (file1.hasOwnProperty(key)) {
            if (file2.hasOwnProperty(key)) {
                if (file1[key] === file2[key]) sortedObj[key] = file1[key]
                else {
                    sortedObj[`- ${key}`] = file1[key]
                    sortedObj[`+ ${key}`] = file2[key]
                }
            }
            else sortedObj[`- ${key}`] = file1[key]
        }
        else sortedObj[`+ ${key}`] = file2[key]
    }
    console.log(sortedObj)
    return sortedObj
}
при выполнении
Code
1
node gendiff.mjs ./file1.json ./file2.json
(где file1 и file2 файлы JSON, из которых беру данные), должен выводиться массив такого вида:
Code
1
2
3
4
5
6
7
8
{
  '- follow': false,
  host: 'hexlet.io',
  '- proxy': '123.234.53.22',
  '- timeout': 50,
  '+ timeout': 20,
  '+ verbose': true
}
но при выполнении не происходит ничего. Не могу разобраться почему. Буду рад любой идеи
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2021, 21:22
Ответы с готовыми решениями:

Атрибут формы action. Обработчик выполняется только после обновления
Формой &lt;form action=&quot;delete.php&quot; method=&quot;get&quot;&gt; отправляюсь к обработчику на странице delete.php со скриптом. Но скрипт обработчика сразу не...

Задания по Norton Commander или Volcov Commander
Если ВЫ понимаете как это сделать в Norton Commander или Volcov Commander помогите буть Пожалуйста Создайте меню пользователя, с...

Double Commander вполне заменит Total Commander?
В виндусе (ворде) документ, сохранённый в формате HTML готов к отправке на сайт. А как в убунте? Пробный текст на убунте, сохранённый в ...

1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
30.07.2021, 10:25
Лучший ответ Сообщение было отмечено Brod553 как решение

Решение

К сожалению, в документации не указано, что вы должны выполнить
JavaScript
1
program.parse() //=> implicitly uses `program.parse(process.argv)`
То есть:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { Command } from "commander/esm.mjs";
 
const program = new Command();
 
program
  .version('0.0.4', '-V, --version', 'output the version number')
  .description('Compares two configuration files and shows a difference.')
  .option('-f, --format [type]', 'output format')
  .arguments('<filepath1> <filepath2>')
  .action(compare);
 
function compare (filepath1, filepath2) {
  console.log(filepath1, filepath2);
}
 
// Run!
program.parse(process.argv);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2021, 10:25
Помогаю со студенческими работами здесь

Как правильно заблокировать получение action до возможного прихода другой action
Всех приветствую. Возможно название темы получилось слишком сумбурным,но я попытаюсь объяснить проблему. Дело в том,что я пишу будильник. Я...

Как расширить ссылку из Controller/Action/Id до Contr/Action/Category/Id ?
Здравствуйте, Дорогие форумчане! Давно не брался за ASP, поэтому задаю несколько глупый и для кого-то очень простой вопрос: как...

ERD Commander (FAQ по созданию мультизагрузочной флешки ERD Commander 5.0, 6.0, 6.5)
По необходимости шарился по разным сайтам, выискивая данную информацию. В итоге понял, как делать, а так же понял, что на сайтах с этой...

Куда я должен вставить ON DELETE NO ACTION or ON UPDATE NO ACTION?
Сделал миграцию, бд не хочет обновляться, что-то требует, Что мне нужно сделать что-бы она не ругалась?)

Ошибка каскадных таблиц (Specify ON DELETE NO ACTION or ON UPDATE NO ACTION)
Здравствуйте. Возникла проблема с созданием таблицы. Ошибка в Package Manager Console public class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru