[Учебник по фреймворку для Wanchain #2] — Настройте сервер Express с TypeScript для серверной части децентрализованного приложения.

Цель этой серии руководств по Wanchain — показать, как 0xcert Framework можно использовать с блокчейном Wanchain для создания децентрализованного приложения, а также для создания невзаимозаменяемых токенов и управления ими.

⚠️ Предпочитаете строить на Ethereum? Это руководство должно помочь.

Прежде чем мы начнем

Этот эпизод следует за Учебником № 1 и предполагает, что у вас запущен и работает тестовый узел Wanchain.

Из этой серии руководств вы узнаете:

  1. Как настроить тестовую ноду Wanchain (гван)
  2. Как создать кошелек Wanchain и получить тестовые токены WAN
  3. Как настроить сервер Express с помощью TypeScript
  4. Как подключить Wanchain к 0xcert Framework
  5. Как использовать 0xcert Framework для серверной части
  6. Как настроить простой интерфейс для тестирования

В конце этого руководства у вас будет рабочий сервер Express, настроенный и работающий.

Для этого мы используем следующие технологии:

  • Машинопись
  • Node.js
  • Express.js

Предполагается, что вы знаете и понимаете основы JavaScript, Node.js и использования терминала.

Весь код, использованный для примеров, можно найти на GitHub с дополнительными функциями и пояснениями.

1. Настройте проект и зависимости

Мы предполагаем, что вы установили node.js. Во-первых, давайте создадим каталог нашего проекта и инициализируем npm.

$ mkdir wanchain-example
$ cd wanchain-example
$ npm init

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

npm install express

Вторая зависимость, которую нужно установить, это TypeScript (она нужна нам только как зависимость для разработчиков, так как она больше не нужна после переноса в JavaScript):

npm install --save-dev typescript

В-третьих, мы обновляем наш проект, чтобы TypeScript мог обрабатывать объявления типов для Express и node:

npm install --save-dev @types/node @types/express

Наконец, мы устанавливаем body-parser, который поможет анализировать данные JSON в Express.

npm install body-parser

При этом наш проект настроен с точки зрения нашего API. До этого момента это была просто стандартная настройка Express TypeScript. Что делает волшебство возможным, так это 0xcert Framework.

Для этого урока нам понадобятся два пакета Framework. Первый — HTTP-Provider, который обеспечивает связь с узлом Wanchain. Второй — Asset-Ledger, который направляет все операции, которые мы хотим выполнить (развертывание, создание, передача и т. д.). Добавим оба:

npm install @0xcert/wanchain-http-provider
npm install @0xcert/wanchain-asset-ledger

Теперь у нас установлены все необходимые зависимости, и мы можем продолжить создание API.

2. Запустите Express с TypeScript

Поскольку мы запускаем сервер Express с TypeScript, он требует несколько иной настройки, чем пример привет, мир на их веб-сайте. Вот тот же пример на TypeScript:

import * as express from 'express';
const app = express();
const port = 3000;
app.get('/', (req, res) => {
 res.send('Hello World!')
 }); 
app.listen(port, () => {
 console.log(`Example app listening on port ${port}!`);
});

Теперь давайте создадим папку с именем src, содержащую файл index.ts, и вставим в нее приведенный выше пример.

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

{
 "compilerOptions": {
  "module": "commonjs",
  "target": "es6",
  "noImplicitAny": false,
  "removeComments": true,
  "sourceMap": true,
  "outDir": "dist",
  "declaration": true,
 }
}

Эта конфигурация сообщает TypeScript, как компилировать в JavaScript. С его помощью мы указали выходную папку для файлов JavaScript как dist. Теперь нам нужно обновить package.json, чтобы он знал, как компилировать TypeScript в JavaScript и как запускать сервер Express. Для этого нам потребуется обновить разделы main и scripts следующим образом:

"main": "dist/index.js", 
"scripts": {
 "build": "tsc",
 "prestart": "npm run build",
 "start": "node .",
 "test": "echo \"Error: no test specified\" && exit 1"
}

Мы установили, что основной файл является сгенерированным файлом JavaScript, и что когда мы вызываем npm run start, мы сначала транспилируем TypeScript в JavaScript, а затем запускаем сервер Express. Теперь мы можем запустить команду npm run start и посмотреть, все ли работает.

Прежде чем мы начнем писать реальный код, давайте добавим все импорты в наш файл index.ts:

import * as express from 'express';
import * as bodyParser from 'body-parser';
import { HttpProvider } from '@0xcert/wanchain-http-provider';
import { AssetLedger } from '@0xcert/wanchain-asset-ledger';

Наконец, мы настроили парсер тела, чтобы мы могли анализировать JSON из вызовов POST.

Это легко сделать, добавив следующий раздел после const app = express();:

app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(bodyParser.json());

Если у вас есть вопросы по коду или у вас возникли проблемы с разработкой с помощью 0xcert Framework в сети Wanchain, вы можете пообщаться с нашими разработчиками в Gitter канале 0xcert, они будут рады помочь.

Что будет дальше?

На данный момент все необходимое для этого шага настроено, и мы можем начать создавать API.

⬇️Посмотрите и другие обучающие эпизоды⬇️

Учебное пособие по платформе для Wanchain №1: Запуск и подготовка тестового узла Wanchain для внутренней интеграции
Учебное пособие по платформе для Wanchain №3: Развертывание реестра активов
Учебное пособие по фреймворку для Wanchain №4: Создание новых ресурсов
Учебное пособие по фреймворку для Wanchain №5: Перенос активов
Учебное пособие по платформе для Wanchain №6: Атомарные операции при обмене активами в Wanchain

Первоначально опубликовано на https://0xcert.org.