Я ищу в Google «структуру узлов для написания API». Итак, Google дает мне много вариантов, таких как Express, Koa, Hapi, Restify и многое другое. Я выбираю Hapi и начинаю исследовать Hapi. Hapi.js — хороший выбор для новичка.

О Hapi.js

Hapi.js — это Node-фреймворк для написания повторно используемых приложений и сервисов. Hapi.js разработан в WalmartLabs под руководством Eran Hammer.

Предварительно требования

  • NodeJS
  • MongoDB (установите MongoDB, если он не установлен на вашем устройстве)
  • Хапи.js

Проверить NodeJS

во-первых, проверьте, установлен ли узел на вашем локальном компьютере или нет. Я уже установил узел v7.7.3, и версия узла должна быть › v4.0

C:\Users\Danish>node -v
v7.7.3

Настройка Hapi.js

mkdir hapiproject
cd hapiproject
npm init
npm install --save hapi

–save сохранит зависимости проекта в файле package.json. это все, что касается hapi.js. Итак, давайте напишем базовый код для запуска сервера hapi на localhost с портом 3000. создайте файл с именем app.js в каталоге hapiproject.

hapiproject/app.js

'use strict';
const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });
server.start((err) => {
    if (err) {
        throw err;
    }
    
    console.log('Server Running at : ', server.info.uri);
});

Откройте командную строку и выполните команду node app.js. это вернет консольное сообщение, если все пойдет хорошо.

Теперь ваш hapi-сервер работает здесь, http://localhost:3000/, но когда вы открываете его в браузере, он возвращает данные в формате JSON. Из-за отсутствия маршрута, назначенного этому серверу.

{
     "statusCode": 404,
     "error": "Not Found"
}

Настройка маршрута к серверу Hapi

'use strict';
const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });
server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply('Hello, world!');
    }
});
server.start((err) => {
    if (err) {
        throw err;
    }
    console.log('Server Running at : ', server.info.uri);
});

В server.route({})три параметра передают метод, путь и обработчик. метод. Чаще всего используются следующие методы: GET, POST, DELETE, PUT. путь: определяется как маршрут, означающий, какие маршруты вы хотите назначить ‘/’ = корневой узел. обработчик: в разделе обработчика вы можете определить свою функцию, которую вы хотите выполнить для этого маршрута.

npm app.js

http://localhost:3000/ ответит Hello World.