Создание приложений CLI с Nodejs без какой-либо инфраструктуры

Перейти к профилю ашай мандвария

Ашай МандварияЗаблокированоUnblockFollowFollowing

20 ноя


фото Крис Рид на Скрыть

Командные строки (CLI) или терминалы — это самые простые способы связи с ОС. Раньше это был единственный способ взаимодействия с компьютером, поскольку в то время не было графического интерфейса. Даже имея красивый графический интерфейс, в настоящее время терминалы по-прежнему широко используются, поскольку они предоставляют точную информацию без каких-либо отвлекающих факторов, а также помогают выполнять многие задачи, которые просто невозможно выполнить с помощью графического интерфейса, а также быстро.

Приложения на основе CLI можно создавать на всех языках, поддерживающих работу на терминалах. Мы будем использовать Nodejs, поскольку он становится широко популярным.

Мы будем делать погодное приложение под названием Seasons, которое будет показывать погоду в вашем текущем местоположении или месте, которое вы вводите. Этот урок покажет минимум выходных данных, но он весьма универсален и может быть легко расширен.

Прежде чем мы начнем, убедитесь, что у вас есть Узел установлен в вашей системе.

Структура проекта=>

Seasons
      |___bin
          |___index.js
      |___lib
          |___seasons.js

Выше будет структура проекта, которую мы будем использовать для проекта.

Для запуска проекта нам сначала понадобится пакет.json в котором рассказывается о версии проекта, авторе, лицензии и т.д.

Используйте для немедленного запуска со значениями по умолчанию для пакет.json

npm init -y

Или же

npm init //for entering the details

Теперь откройте сезоны.js.

const color=require('colors');

const request=require('request');

exports.seasons= function(code)

{

let apiKey = 'xxxxxxxxx';

let city = code;

let url="

var uri='

if(code)

{

request(url,function(err,response,body){

if(err)

{

return JSON.parse(error);

}

else{

console.log('****'+color.blue(JSON.parse(body).name) +'--'+ color.green(JSON.parse(body).weather[0].main) +'--'+ color.grey(JSON.parse(body).weather[1].description) +'--'+ color.cyan(JSON.parse(body).main.temp)+'--'+ color.red(JSON.parse(body).main.temp_min) +'--'+ color.yellow(JSON.parse(body).main.temp_max)+'****');

}

});

}

else

{

request(uri, function(err,response,body){

if(err)

{

console.log('error');

}

else{

var cit=JSON.parse(body);

var ura="

return request(ura,function(err,response,body){

if(err)

{

console.log('error')

}

else

{

console.log('****'+color.blue(JSON.parse(body).name) +'--'+ color.green(JSON.parse(body).weather[0].main) +'--'+ color.grey(JSON.parse(body).weather[0].description) +'--'+ color.cyan(JSON.parse(body).main.temp)+'--'+ color.red(JSON.parse(body).main.temp_min) +'--'+ color.yellow(JSON.parse(body).main.temp_max)+'****');

}

});

}

});

}

}

Приведенный выше код не требует пояснений. В коде используются 2 API.

Один используется для изготовления ПОЛУЧИТЬ запросить ip-api.comчтобы получить точное местоположение по IP и отправить полученное местоположение в API погоды.

Погодный API делает ПОЧТА запросить отправку местоположения и получение информации о погоде из открытая карта погоды.организация.

#Примечание- Все используемые здесь ajax-запросы обмениваются данными в JSON формат.

Остальная часть кода запрашивает JSON и регистрирует необходимые сведения. Вы можете отображать столько, сколько хотите, но этот урок показывает только температуру.


#!/usr/bin/env node

const colors=require('colors');

const outside=require("../lib/outside");

var arguments=process.argv.splice(2);

var city=null;

if(arguments[0]=='--loc')

{
city=arguments[1];

outside.outside(city);
}

else if(arguments[0]=='--help' || arguments[0]=='-h')

{

console.log("@@@@@@@@@@Welcome@@@@@@@@@@@@@")

console.log("-h or --help for help");

console.log("--loc followed by the location for weather data");

console.log("outside with no arguments gives current location weather")

console.log("--abt tells about the app and author")

console.log("Legend===>> **** City Name--weather condition--weather description--temperature--min temperature--max temperature");

}

else if(arguments[0]==null)

{

(outside.outside());

}

else if(arguments[0]=='--abt')

{

console.log(colors.america('Outside is a simple command line application which shows the days weather forecast'));

console.log(colors.green('Author: Ashay Mandwarya'));

console.log(colors.rainbow('Thanks to openweathermap.com and ip-api.com for their api support'))

console.log(colors.bgMagenta('Thanks to the developers of colors for such a great library'));

}

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

процесс.argv[] представляет собой массив, в котором хранятся все процессы, запущенные с приложением. Мы можем вырезать первые 2 элемента из массива, так как они нам не нужны. Третий элемент — это аргумент в запросе. С помощью простого цикла мы можем определить функциональность каждого аргумента и создать интерактивное приложение, чтобы предоставлять максимум данных, не создавая беспорядка.

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

Вы также можете создать помощник и аргумент about, чтобы добавить больше измерений в приложение.

Наше приложение почти готово.

Последний шаг → Открытьпакет.json файл и введите следующую строку

{

"name": "seasons",

"version": "1.0.0",

"description": "Seasons CLI weather app",

"main": "index.js",

"directories": {

"lib": "lib"

},

«корзина»: {

«сезоны»: «./bin/index.js»

},

"scripts": {

"test": "echo \"Error: no test specified\" && exit 1"

},

"keywords": ["weather","cli","node"],

"author": "Ashay Mandwarya",

"license": "ISC",

"dependencies": {

"colors": "^1.3.2",

"request": "^2.88.0"

}

}

Это сообщает командной строке, какой файл запускать при вводе определенной команды.


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

npm link

Эта строка кода создает символическую ссылку (символическую ссылку) между кодом и делает его глобальным, что означает, что мы можем запустить команду с любого терминала в нашей системе.

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

npm publish

Сначала он попросит войти в систему, ввести учетные данные, а затем опубликовать.

Надеюсь, вам понравился мой урок и вы продолжаете развиваться.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *