Рубрики
Без рубрики

Начало работы с Дено

В этом сообщении мы узнаем о DENOJS и создадим простое приложение CLI, которое дает … Tagged с Deno, JavaScript, TodayIlearned, WebDev.

В этом сообщении мы узнаем о DENOJS и создадим простое приложение CLI, которое дает текущую информацию о погоде.

Контур

1. What is Deno ? 
2. Features of Deno.
3. Installing Deno in local environment. 
4. Building Weather App CLI .
5. Conclusion. 

Что такое Дено?

DeNo – это безопасное время выполнения для TypeScript и JavaScript, написанного на Rust. Программы DEDO могут быть написаны либо с помощью JavaScript, либо TypeScript и выполнены из командной строки.

Концепция Дено была впервые открыта миру во время JSConf EU 2018, где Райан Даль выступил с речью о «10 вещах, о которых я сожалею о Nodejs». Вы можете найти запись разговора Здесь Анкет

Он безопасен и совместим с браузером, насколько это возможно.

Функции

  1. Безопасно по умолчанию. Нет доступа к файлам, сети или среде (если только явно не включен).
  2. Поддерживает TypeScript Out из коробки.
  3. Совместимость с Интернетом как можно более и поддерживает веб -API, такие как Fetch.
  4. Предоставьте встроенные инструменты, такие как Test Runner, Formatter и Linter, чтобы улучшить опыт разработчиков.

Теперь о забавной части, давайте построим наш DeDo Weather CLI

Установка в Дено в местной среде

Дено работает на MacOS, Linux и Windows. Дено – единственный бинарный исполняемый файл. У него нет внешних зависимостей.

На macOS предоставляются как M1 (ARM64), так и Intel (x64). На Linux и Windows поддерживается только X64.

Запустите свой терминал и запустите эту команду.

# For Mac OS using curl 

curl -fsSL https://deno.land/x/install/install.sh | sh

# For Windows using power shell

iwr https://deno.land/x/install/install.ps1 -useb | iex

После успешного установки вы должны увидеть что -то подобное

Запустите следующую команду, чтобы проверить установку DENO.

deno --version

Установка документов для Дено из другого источника – Ссылка на документы

Создание приложения для погоды

Мы будем кодировать наш CLI в JS.

Вы также можете установить официальный и кодовый плагин для DEDO, если вы не используете VSCODE, DENO’s Документы Имеет способы настройки среды DEV до кодирования.

Давайте создадим папку для нашего нового проекта и добавим файл index.js:

mkdir weather-app-cli-deno
cd weather-app-cli-deno
code-insiders index.js

Мы собираемся получить данные о погоде от OpenWeather Map API

После создания своей учетной записи вы сможете создать свой ключ API в этом Ссылка Анкет

Хорошо, теперь держите это в безопасности. Нам понадобится это, чтобы запросить данные.

Откройте свой index.js Подайте и вставьте следующий код.

console.log(Deno.args) // [ "London" ]

let city = Deno.args[0]; // Deno.args gives us a way to access the CLI variables

if(!city){
    console.error("No city supplied");
    Deno.exit();
}

const apiKey = '*****************'; // replace with your API key

const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}`);
const data = await res.json();

console.log(data);


В настоящее время Если вы запустите это выше кода с следующей командой

deno run index.js London

Вы получите следующий вывод

error: Uncaught PermissionDenied: Requires net access to "api.openweathermap.org", run again with the --allow-net flag
const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}`);
                  ^
    at deno:core/01_core.js:106:46
    at unwrapOpResult (deno:core/01_core.js:126:13)
    at Object.opSync (deno:core/01_core.js:140:12)
    at opFetch (deno:ext/fetch/26_fetch.js:57:17)
    at mainFetch (deno:ext/fetch/26_fetch.js:199:61)
    at deno:ext/fetch/26_fetch.js:439:11
    at new Promise ()
    at fetch (deno:ext/fetch/26_fetch.js:399:15)
    at file:///Users/karthikeyan/karthikeyan/weather-app-cli-deno/index.js:11:19

Причина в том, что DENO является безопасной средой выполнения, которая будет иметь сеть доступа, если мы не даем доступ. Как упомянуто в сообщении об ошибке, давайте дадим доступ к сети и посмотрим, что произойдет.

Направьте команду так и запустите ее в своем терминале

deno run --allow-net index.js Bangalore

Мы успешно получим текущую информацию о погоде о Бангалоре.

{
  coord: { lon: 77.6033, lat: 12.9762 },
  weather: [
    {
      id: 200,
      main: "Thunderstorm",
      description: "thunderstorm with light rain",
      icon: "11n"
    },
    { id: 502, main: "Rain", description: "heavy intensity rain", icon: "10n" }
  ],
  base: "stations",
  main: {
    temp: 20.8,
    feels_like: 21.55,
    temp_min: 20.8,
    temp_max: 21.9,
    pressure: 1014,
    humidity: 100
  },
  visibility: 4000,
  wind: { speed: 0, deg: 0 },
  rain: { "1h": 8.65 },
  clouds: { all: 75 },
  dt: 1632161523,
  sys: { type: 1, id: 9205, country: "IN", sunrise: 1632098322, sunset: 1632142053 },
  timezone: 19800,
  id: 1277333,
  name: "Bengaluru",
  cod: 200
}

Давайте выберем то, что нам нужно из ответа, отформатируйте его и отобразим его в терминале.

Замените следующий форматированный код старым кодом.

console.log(Deno.args,'\n')
const city = Deno.args[0]; 

if(!city){
    console.error("No city supplied");
    Deno.exit();
}

const apiKey = '******************************';

const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}`);
const data = await res.json();


const date = new Date(data.dt * 1000).toLocaleDateString()

console.log("========== Weather Report ============\n")
console.log(`Date - ${date} | Location: ${data.name}`)
console.log("\n")
console.log(`Weather- ${data.weather[0].description} | Temparature: ${data.main.temp} \n`)


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

 deno run --allow-net index.js Bangalore


Вы должны увидеть следующий вывод на терминале


======== Weather Report ============

Date - 20/09/2021 | Location: Bengaluru


Weather- thunderstorm with light rain | Temparature: 20.8 


Поздравляю 👏 👏 👏. Вы построили свой первый CLI с помощью DEDO.

Вывод

Спасибо за чтение до конца. Дайте мне знать свои мысли в комментариях. Отзывы всегда приветствуются.

Ресурсы:

  1. Deno Docs

Оставайся в безопасности и счастливого кодирования:)

Оригинал: “https://dev.to/imkarthikeyan/getting-started-with-deno-9ld”