Как запустить программу через node js

Содержание

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Аргументы командной строки в Node.js

Что такое аргументы командной строки? Аргументы командной строки — это строки текста, используемые для передачи дополнительной информации программе, когда приложение запускается через интерфейс командной строки [https://en.wikipedia.org/wiki/Command-line_interface] (CLI) операционной системы. Аргументы командной строки обычно включают информацию, используемую для установки значений конфигурации или свойств для приложения. В большинстве случаев аргументы передаются после имени программы в вашем приглашении. Пример синтаксиса co

Время чтения: 8 мин.

Что такое аргументы командной строки?

Аргументы командной строки — это строки текста, используемые для передачи дополнительной информации программе, когда приложение запускается через интерфейс командной строки (CLI) операционной системы. Аргументы командной строки обычно включают информацию, используемую для установки значений конфигурации или свойств для приложения.

JS2. 03 Запуск скрипта в Node js

В большинстве случаев аргументы передаются после имени программы в вашем приглашении. Пример синтаксиса аргументов командной строки выглядит так:

$ [runtime] [script_name] [argument-1 argument-2 argument-3 . argument-n]

Здесь среда выполнения может быть чем угодно, выполняющим программу / сценарий, например sh , java , node и т. Д. Аргументы обычно разделяются пробелом, однако есть некоторые среды выполнения, в которых используются запятые, чтобы различать несколько аргументов командной строки. Кроме того, в зависимости от программы вы можете передавать аргументы в виде пар ключ-значение, что мы увидим позже в этой статье.

Зачем использовать аргументы командной строки?

Ниже приведены некоторые из основных преимуществ использования аргументов командной строки:

  • Вы можете передать информацию приложению до его запуска. Это особенно полезно, если вы хотите выполнить большое количество настроек конфигурации.
  • Аргументы командной строки передаются вашей программе в виде строк. Типы данных String можно легко преобразовать в другие типы данных в приложении, что делает аргументы очень гибкими.
  • Вы можете передавать неограниченное количество аргументов через командную строку.
  • Аргументы командной строки используются вместе со сценариями и пакетными файлами, что особенно полезно для автоматического тестирования.

И вот некоторые из недостатков их использования:

  • Самым большим недостатком передачи информации через командную строку является то, что интерфейс требует сложного обучения, поэтому большинству людей трудно использовать его, если у них нет большого опыта использования инструментов CLI.
  • Приложения командной строки могут быть трудными в использовании, если вы не используете настольный или портативный компьютер, поэтому они обычно не используются на небольших устройствах, таких как телефоны или планшеты.

Передача аргументов командной строки в Node.js

Как и многие другие языки, приложения Node.js также принимают аргументы командной строки. По умолчанию Node обрабатывает принятие аргументов за вас, но есть также несколько отличных сторонних пакетов, которые добавляют некоторые очень полезные функции.

NodeJS. 03. Установка и первая программа

В этом разделе мы покажем вам, как использовать аргументы встроенным способом ( process.argv ), а также с популярными пакетами minimist и yargs.

Использование process.argv

Самый простой способ получить аргументы в Node.js — через массив process.argv Это глобальный объект, который можно использовать без импорта каких-либо дополнительных библиотек для его использования. Вам просто нужно передать аргументы приложению Node.js, как мы показали ранее, и к этим аргументам можно получить доступ в приложении через массив process.argv

Первым элементом process.argv всегда будет путь файловой системы, указывающий на исполняемый файл node Второй элемент — это имя исполняемого файла JavaScript. И третий элемент — это первый аргумент, фактически переданный пользователем.

Чтобы избежать путаницы, я хотел бы напомнить вам, новичкам, что JavaScript использует индексы с нулевым отсчетом для массивов (как и многие другие языки), что означает, что первый элемент будет сохранен в индексе «0», а последний элемент будет сохранен в Индекс «n-1», где «n» — общее количество элементов в массиве.

Теперь давайте напишем простой сценарий Node, который печатает все аргументы командной строки, переданные приложению, вместе с их индексом. Скопируйте и вставьте следующий код в файл с именем processargv.js.

‘use strict’; for (let j = 0; j < process.argv.length; j++) < console.log(j + ‘ ->’ + (process.argv[j])); >

Все, что делает этот сценарий, — это перебирает process.argv и печатает индексы вместе с элементами, хранящимися в этих индексах. Это очень полезно для отладки, если вы когда-нибудь сомневаетесь, какие аргументы вы получаете и в каком порядке.

Теперь, чтобы запустить этот тип, введите следующую команду. Просто убедитесь, что вы находитесь в каталоге, в котором сохранен файл «processargv.js».

$ node processargv.js tom jack 43

Здесь мы передаем программе processargv.js три аргумента. Вы увидите, что «tom» будет сохранен во 2-м индексе, а «jack» и «43» будут сохранены в 3-м и 4-м индексах соответственно. Результат должен выглядеть примерно так:

Читайте также:
На вход программе подается последовательность натуральных чисел

$ node processargv.js tom jack 43 0 -> /Users/scott/.nvm/versions/node/v4.8.0/bin/node 1 -> /Users/scott/javascript/processargv.js 2 -> tom 3 -> jack 4 -> 43

Вы можете видеть, что первый индекс содержит путь к node (который, вероятно, будет иметь другой путь, чем мой), второй индекс содержит путь к файлу сценария, а остальные индексы содержат аргументы, которые мы передали в их соответствующая последовательность.

Использование модуля Minimist

Другой способ получить аргументы командной строки в приложении Node.js — использовать модуль minimist. Модуль Minimist проанализирует аргументы из process.argv и преобразует его в более простой в использовании ассоциативный массив. В ассоциативном массиве вы можете получить доступ к элементам через имена индексов в дополнение к номерам индексов. Взгляните на следующий пример.

‘use strict’; const args = require(‘minimist’)(process.argv.slice(2)); console.log(args); console.log(args.i);

Сохраните приведенный выше код в «minimist.js». В приведенном выше коде мы используем метод slice глобального объекта process.argv В slice удаляет все предыдущие элементы массива, начиная с индекса, переданного ему в качестве параметра. Здесь мы знаем, что аргументы, которые мы передаем вручную, сохраняются, начиная со второго индекса, мы передали 2 в функцию среза. Затем мы распечатали весь объект args Мы также напечатали отдельный элемент массива, используя именованный индекс, то есть «i», а не номер индекса.

Теперь, когда мы передаем аргумент этой программе, мы также можем указать символ, с помощью которого мы хотим получить доступ к элементу. Поскольку в сценарии мы используем индексное имя «i» для доступа к элементу, мы должны указать элемент, хранящийся в этом индексе. Взгляните на сценарий для выполнения указанной выше программы.

$ node minimist.js –i jacob –j 45

Обратите внимание, что здесь мы указали «i» в качестве имени для второго индекса, значение, хранящееся в этом индексе, — «jacob». Точно так же третий индекс называется «j», и значение этого индекса — 45. Результат выполнения вышеуказанной команды будет следующим:

$ node minimist.js -i jacob -j 45 < _: [], i: ‘jacob’, j: 45 >jacob

Несмотря на то, что Minimist не такой многофункциональный, как некоторые другие модули анализа аргументов (см. yargs ниже), он имеет несколько полезных функций, на которые вы, возможно, захотите обратить внимание, например, псевдонимы и значения по умолчанию.

Если вы устанавливаете псевдоним, то вызывающая программа вашей программы может использовать псевдоним в дополнение к обычному имени опции. Это полезно, если вы хотите иметь сокращенное обозначение для ваших вариантов, как показано ниже:

‘use strict’; const minimist = require(‘minimist’); let args = minimist(process.argv.slice(2), < alias: < h: ‘help’, v: ‘version’ >>); console.log(‘args:’, args);

Вызов этого кода с параметром -h устанавливает как h: true и help: true в выходные аргументы:

$ node minimist-alias.js -h args:

Что касается функции Minimist по умолчанию, если для параметра не передано значение, то значение по умолчанию, которое вы установили в своей программе, будет использоваться автоматически.

‘use strict’; const minimist = require(‘minimist’); let args = minimist(process.argv.slice(2), < default: < port: 8080 >, >); console.log(‘args:’, args);

Вызов этого кода без -port прежнему дает вам port в возвращенном объекте args

$ node minimist-defaults.js args:

Дополнительные параметры см. В README .

Использование модуля yargs

Еще один модуль, который поможет вам анализировать аргументы командной строки, передаваемые программам Node, — это модуль yargs. Используя этот модуль, вы можете передавать аргументы в виде пар ключ-значение, а затем получать доступ к значениям аргументов в вашей программе, используя соответствующие ключи.

Примечание: вы можете установить yargs с помощью следующей команды:

$ npm install yargs

Теперь взгляните на следующий сценарий:

‘use strict’; const args = require(‘yargs’).argv; console.log(‘Name: ‘ + args.name); console.log(‘Age: ‘ + args.age);

В приведенном выше сценарии мы отображаем значения, указанные для аргументов «имя» и «возраст», которые были переданы через командную строку. Теперь сохраните приведенный выше сценарий в файле с именем «yargs.js».

Примечание. Когда вы выполняете указанную выше программу, вам необходимо передать значения аргументов «имя» и «возраст», в противном случае для аргументов по умолчанию будет undefined , и вы увидите, что в консоли записано значение undefined

Чтобы выполнить указанную выше программу, выполните в командной строке следующую команду:

$ node yargs.js —name=jacob —age=45

Здесь мы передаем значения аргументов имени и возраста. Результат вышеупомянутого скрипта будет выглядеть так:

$ node yargs.js —name=jacob —age=45 Name: jacob Age: 45

Пакет yargs — очень мощный пакет, который не только предоставляет стандартные функции анализа аргументов, но и множество дополнительных функций. Хотя мы не будем рассматривать все функции в этой статье, мы, по крайней мере, коснемся одной из самых популярных функций.

Один из самых эффективных способов использования yargs — это .command() , которая помогает вам создавать, открывать и вызывать функции Node через командную строку. Вот простой пример работы этой функции:

‘use strict’; const argv = require(‘yargs’) .command(‘upload’, ‘upload a file’, (yargs) => <>, (argv) => < console.log(‘Uploading your file now. ‘); // Do stuff here >).argv;

Вызов этой программы с помощью команды «upload» вызовет переданную вами функцию, которая в данном случае просто выводится в командную строку. Однако я уверен, что вы можете представить себе передачу гораздо более функциональной функции, которая использует проанализированный argv чтобы определить, какой файл куда отправить.

Например, эту команду можно вызвать так (при условии, что приведенный выше код хранится в файле с именем «s3-tool.js»:

$ node s3-tool.js upload —file=my-file.txt —bucket=my-s3-bucket Uploading your file now.

И вам не нужно останавливаться на достигнутом, вы даже можете создать команду по умолчанию:

‘use strict’; const argv = require(‘yargs’) .command(‘*’, ‘the default command handler’, () => <>, (argv) => < console.log(‘This function is called by default’); >).argv;

Функция .command() достаточно мощна, чтобы вывести необходимые и необязательные параметры из строки:

Читайте также:
Программа которая восстанавливает удаленные видео с телефона

‘use strict’; const yargs = require(‘yargs’); yargs.command(‘login [password]’, ‘authenticate with the server’).argv

Для получения дополнительной информации о расширенных функциях ознакомьтесь с yargs расширенным темам yargs.

Это может быть для вас немного удивительно, но, как вы могли заметить, разбор аргументов на самом деле может быть довольно сложной темой. В зависимости от ваших потребностей вы можете сделать его настолько простым или сложным, насколько захотите. yargs , есть подходящее решение для всех нужд, будь то базовый process.argv или мощный пакет yargs.

Как вы использовали minimist и yargs для создания программ CLI? Дайте нам знать об этом в комментариях!

Licensed under CC BY-NC-SA 4.0

Источник: rukovodstvo.net

Node.js в Windows 10: как установить и запустить код

JavaScript — это язык, используемый в основном при разработке веб-страниц. Этот язык программирования относится к типу «внешнего интерфейса», то есть он запускается непосредственно на ПК пользователя через веб-браузер. Однако, учитывая его потенциал, он приобретает все большее значение за пределами браузеров. И это возможно благодаря существованию очень полных JS-сред, которые позволяют нам выполнять любую программу, созданную в этом коде, простым способом, как в случае с Node.js.

Что такое Node.js

В течение многих лет JavaScript был исключительно языком интерфейса. Браузер читает и выполняет его так, как оно указано на веб-странице. Однако этот язык программирования гораздо более полный, и ему нечего завидовать другим языкам программирования ни по функциональности, ни по производительности. Конечно, чтобы не зависеть от браузера, нужен интерпретатор. И здесь в игру вступает Node.js.

Node.js в Windows 10: как установить и запустить код

Node.js — это Среда JavaScript предназначен для работы на серверах. Эта среда основана на движке Chromium V8 и позволяет нам асинхронно запускать все виды JS-кода на сервере, независимо от полнофункционального браузера.

Когда мы запускаем программу JavaScript в Node.js, эта среда загружает виртуальную машину с Chromeдвижок V8 и использовать его для интерпретации и выполнения кода. Кроме того, он имеет большое количество модулей, поэтому нам не нужно писать все функции с нуля, что ускоряет программирование.

Некоторые из наиболее распространенных применений этой среды:

  • Создавайте API и серверные системы которые работают на стороне сервера.
  • Создавайте клиентские программы и инструменты, которые запускаются в консоли независимо от браузера.
  • Создавайте настольные программы с помощью Node и фреймворка вроде » электрон ».

Установите Node.js в Windows 10

У этой среды есть две разные версии. С одной стороны, у нас есть самая последняя и самая последняя версия, которая содержит самые последние функции, реализованные в среде, но она может быть нестабильной. А с другой стороны у нас есть LTS версия, самая стабильная с расширенной поддержкой, которая гарантирует нам максимально возможную производительность и стабильность.

Обе версии доступны на их веб-сайт Честного ЗНАКа . Мы должны выбрать версию, которую хотим, и загрузить, которая лучше всего подходит для нашей операционной системы. Например, если у нас есть ПК с 64-битной Windows 10, мы должны загрузить Установщик 64-битной Windows MSI .

Node.js в Windows 10 - 1

После того, как мы скачали нужный установщик, мы запускаем его на нашем компьютере. Процесс установки этой программы очень прост, так как все, что нам нужно сделать, это выполнить действия до конца.

Node.js в Windows 10 - 2

Node.js в Windows 10 - 3

Node.js в Windows 10 - 4

На определенном этапе установки важно убедиться, что опция «добавить в ПУТЬ» активирована правильно. Таким образом, мы можем легче запускать среду из окна CMD.

Node.js в Windows 10 - 5

Кроме того, мы также должны отметить возможность загрузки дополнительных инструментов, чтобы иметь возможность работать с этим инструментом намного лучше. Дополнительные инструменты, которые загрузит Node.js, — это Chocolatey, Python и Visual Studio Code. Он также обновит некоторые элементы системы, такие как .NET, чтобы программы работали правильно.

Node.js в Windows 10 - 6

Теперь начнется процесс установки. Мы ждем, когда он закончится, и когда он закончится, у нас будет готово.

Node.js в Windows 10 - 7

Node.js в Windows 10 - 8

Если мы отметили возможность загрузки дополнительных инструментов, автоматически откроется окно CMD, в котором будет загружен сценарий PowerShell, и все эти инструменты будут загружены и установлены автоматически, без каких-либо действий.

Node.js в Windows 10 - 9

Node.js в Windows 10 - 10

Когда закончите, у нас будет установлен Node.js на компьютере, готовый к его использованию.

Установите его в Linux

Эта среда также доступна для основных Linux раздачи. На его веб-сайте мы можем напрямую загрузить исходный код или двоичные файлы, которые позволят нам использовать этот инструмент. Но, если хотите, мы также можем установить его из терминала с помощью простой команды:

sudo apt install nodejs npm

Когда все закончится, у нас будет готовая среда. Мы можем проверить, что он работает, и проверить версию, выполнение «node -v» в терминале.

Установите его на macOS

Если мы являемся пользователями iOS операционной системы, мы также сможем установить эту среду на macOS. Для этого мы должны на странице загрузки выбрать версию macOS вместо версии Windows.

Установщик macOS файл .PGK , который мы должны выполнить двойным щелчком, чтобы установить его на наш компьютер.

Как открыть Node.js

После установки Node мы можем начать с ним работать по-разному. Если мы отметим опцию добавления инструмента в Windows PATH, мы сможем запустить его как из CMD, так и из PowerShell, написав команду «node», за которой следует команда или сценарий, который мы хотим выполнить.

В противном случае мы можем запустить консоль JavaScript с помощью поисковой системы Windows 10 или из соответствующей записи в меню «Пуск». Здесь мы найдем несколько разделов. С одной стороны, мы сможем открыть консоль Node, чтобы иметь возможность выполнять нужные нам инструкции или запускать сценарии. С другой стороны, откройте консоль NPM, чтобы выполнять сценарии из нее напрямую, используя эту библиотеку. И, если мы не установим дополнительные инструменты и зависимости в то время, отсюда мы сможем сделать это напрямую.

Node.js в Windows 10 - 12

Когда мы узнаем части этой установки, мы увидим, как выполнить наш первый бэкэнд с помощью JavaScript благодаря Node.

Читайте также:
Какая программа для просмотра веб страниц

Запустить программу

После того, как эта среда будет установлена ​​на нашем компьютере, следующим шагом будет научиться выполнять код. Для этого первое, что мы сделаем, — это создадим нашу первую программу. Если у нас уже есть файл .js на компьютере, мы можем пропустить этот шаг и попробовать его, запустив его прямо из консоли Node.js.

В противном случае мы откроем окно консоли для этого интерпретатора и напишем в нем следующие команды:

var http = require(«http»); http.createServer(function (request, response) < response.writeHead(200, ); response.end(‘Hello World’); >).listen(8081); console.log(‘Server running at http://127.0.0.1:8081/’);

Если все пойдет хорошо, у нас будет наш внутренний сервер с этим интерпретатором. Чтобы убедиться, что он работает, мы должны открыть любой веб-браузер, например Edge, и введите следующий адрес:

Node.js в Windows 10 - 11

Как запустить бэкэнд на Node JS

В этой статье напишем простой бэкэнд на NodeJS. Этот сервер будет полезен для разработки веб-приложений.

Необходимые условия

  • NodeJS и npm. Их можно скачать с официального сайта nodejs.org. npm установится автоматически вместе с NodeJS.
  • Предпочитаемый IDE, например, Visual Studio Code.
  • Опционально, установить git для удобной работы с кодом.

О приложении

В этой статье напишем небольшой REST API сервер, который будет отдавать список дел по GET запросу. Структура папок будет выглядеть следующим образом.

my-app/

Создание бэкэнда на NodeJS

Запустим команду в папке my-app/ для инициализации проекта:
npm init -y

Эта команда создаст файл package.json . Ключ -y заполнит все поля в package.json значениями по умолчанию.

Файл package.json содержит информацию о проекте — название, версия, описание, список зависимостей, скрипты для запуска, сборки и тестирования. Все поля можно будет изменить и вручную после его создания. После инициализации package.json будет выглядеть следующим образом.

< «name»: «my-app», «version»: «1.0.0», «description»: «», «main»: «index.js», «scripts»: < «test»: «echo «Error: no test specified» exit 1″ >, «keywords»: [], «author»: «», «license»: «ISC» >
Для создания сервера будем использовать express. Установим его с помощью команды:
npm install express

Создадим файл index.js . В нем будет находится код для запуска сервера. Если порт не задан в переменных среды, то будет использован порт 3010 .

// my-app/index.js const express = require(‘express’); const PORT = process.env.PORT || 3010; const app = express(); app.use((req, res, next) => < res.setHeader(‘Access-Control-Allow-Origin’, ‘*’); next(); >); app.listen(PORT, () => < console.log(`Server listening on $`); >);

Запуск сервера

В поле scripts файла my-app/package.json добавим команду для запуска сервера. В результате сможем запускать наш сервер с помощью команды npm start .

. «scripts»: < «start»: «node ./index.js» >, .

Из папки my-app/ запустим команду npm start . Если ошибок нет, получим сообщение, что сервер прослушивает порт 3010.

Создание API

API это интерфейс, с помощью которого приложение будет общаться с веб-сервером, т.е. запрашивать, изменять или удалять данные. Мы сможем получать эти данные, например, в веб-приложении на React. О том как, делать API запросы к серверу из React приложения, можно прочитать в этой статье. В нашем случае мы создадим API для получения списка дел в формате JSON. Создадим файл /my-app/todo-items.json c объектами todo. Этот массив будем отдавать по запросу /api/todo-items .

Далее добавим код для создания эндпоинта /api/todo-items . Веб-приложение сможет отправлять на него GET запрос.

// my-app/index.js // . const todoItems = require(‘./todo-items.json’); app.get(‘/api/todo-items’, (req, res) => < res.json(< data: todoItems >); >); app.listen(PORT, () => < console.log(`Server listening on $`); >);

Ответ от Node JS сервера

Для того чтобы изменения применились нужно перезапустить NodeJS сервер. Для остановки скрипта в терминале, в котором запущен npm start , нужно нажать Ctrl + C ( Command + C ). Далее снова запускаем npm start . Для проверки эндпоинта, вставим в адресную строку браузера http://localhost:3010/api/todo-items . В результате получим такой ответ.

Отправка HTTP запроса к серверу

К этому моменту у нас уже есть рабочий сервер, который умеет принимать запросы и отдавать данные. Для проверки работы сервера вне веб-приложения можно воспользоваться такими программами как Postman или Insomnia.

Автоматический перезапуск сервера после обновления кода

Ранее для того чтобы изменения исходного кода сервера вступили в силу, мы перезапускали сервер. Можно ускорить процесс разработки и автоматизировать эту часть с помощью инструмента nodemon. nodemon будет следить за файлами в каталоге, в котором был запущен nodemon, и если какие-либо файлы изменятся, он автоматически перезапустит ваше node js приложение. Установим nodemon как зависимость для разработки.

npm install —save-dev nodemon

Добавим новый скрипт dev в my-app/package.json .

. «scripts»: < «dev»: «nodemon ./index.js» >, .

Далее запустим сервер следующим образом.

npm run dev

Теперь, после изменений в коде, увидим, что сервер перезапускается сам. Исходный код

Обработка ошибок в Express.js

4 месяца назад · 4 мин. на чтение

Пишем middleware для Express.js для обработки ошибок.

Из-за неопределенного характера JavaScript существует множество способов выполнения одной задачи. Это может стать как достоинством, так и недостатком, особенно при работе в более крупной команде. Именно здесь в игру вступают процессы и руководящие принципы.

Предусловия

  • Установленный NodeJS
  • Знание NodeJS и Express.js
  • Знание того, как работает middleware в Express.js

Настройка проекта

Создадим базовое приложение Express.js с одним эндпоинтом. Этот эндпоинт (или ручка) будет методом POST , который принимает два входных параметра title и author .

const express = require(‘express’); const bodyParser = require(‘body-parser’); const app = express(); const port = 3000; app.use(bodyParser.json()); app.post(‘/post’, async (req, res) => < const < title, author >= req.body; if (!title || !author) < return res.status(400).json(< status: ‘error’, message: ‘Missing required fields: title or author’ >); > try < const post = await db.post.insert(< title, author >); res.json(post); > catch (error) < return res.status(500).json(< status: ‘error’, message: ‘Internal Server Error’ >); > >); app.listen(port, () => console.log(`app is listening at http://localhost:$`) );

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru