Первоначально опубликовано на моем блог
Koa.js является минимальным веб-каркасом Node.js, разработанная командой позади Express.js Отказ KOA использует Async-функции, это дает вам преимущество в функциях обратного вызова. По умолчанию KOA не поставляется с любыми людварами. Это делает коа очень минимальным и элегантным. В этом посте мы начнем с создания API, используя koa.js
KOA требует Узел v7.6.0 или выше для ES2015 и async Поддержка функций.
Предпосылки
- Знание Node.js
- ES6 Syntax знакомство
Что мы строим?
С помощью KOA мы построим простой Анализ настроений API, который принимает текст в качестве ввода и обеспечивает оценку настроения в качестве вывода. Мы будем использовать следующие пакеты NPM для создания этой API.
- Коа – Веб-каркас
- Маршрутизатор KOA – для маршрутизации
- Теловый партер Koa – разбирать тело запроса
- Настроения – анализ текста
Давайте начнем создать этот API.
Привет мир
Начнем с простейшего примера. Во-первых, нам нужно установить KOA. Создайте новый каталог, и мы выполним следующее для установки KOA.
yarn add koa
Пример Hello World прост, как он получает,
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000, () => { console.log('Server started on localhost:3000'); });
Первая строка импортирует коа. В следующей строке мы инициализируем приложение KOA.
app.use (Функция)
это промежуточное программное обеспечение. Это вызывается для каждого запроса, отправленного на сервер. И мы устанавливаем тело как «Hello World». Следовательно, на каждом маршруте мы получим ответ «Hello World». И, наконец, мы слушаем порта номер 3000.
Koa Mardware
Очень легко создать пользовательское промежуточное программное обеспечение в KOA. В последнем разделе мы использовали app.use (Функция)
Эта функция может быть использована для создания промежуточного программного обеспечения KOA. Промежуточное программное обеспечение KOA течет в стогах, что позволяет вам выполнять действия ниже по потоку, затем фильтровать и манипулировать откликом вверх по течению. KOA Mardware – простые функции, которые возвращают MardwareFunction
С подписью (CTX, Далее)
Отказ Когда промежуточное программное обеспечение работает, он должен вручную вызвать Далее ()
Чтобы запустить промежуточное программное обеспечение «Downstream».
const Koa = require('koa'); const app = new Koa(); app.use(async (ctx, next) => { console.log('1'); await next(); console.log('2'); }); app.use(async (ctx, next) => { console.log('3'); await next(); console.log('4'); }); app.use(async (ctx, next) => { console.log('5'); ctx.body = 'Hello World'; console.log('6'); }); app.listen(3000, function(){ console.log('Server started on localhost:3000'); });
Если вы ударили localhost: 3000
В браузере вы получите следующую консольный выход. Процесс идет так,
- Браузер отправляет запрос на сервер
- Первая промежуточная программа вызывается, печатает «1»
- Первое промежуточное программное обеспечение вызывает следующее промежуточное программное обеспечение, используя
Далее ()
Отказ Первая пауза, исполнение идет к следующему - Вторая промежуточная программа вызывается, печатает «3»
Далее ()
, Вторая пауза- Третье промежуточное программное обеспечение вызывается, печатает «5»
- Третье промежуточное программное обеспечение отправляет ответ на браузер «Hello World»
- Третий продолжается, печатает «6», а исполнение идет вверх.
- Вторая промежуточная программа продолжается, печатает «4», выполнение идет вверх.
- Первая промежуточная программа продолжается, печатает «2».
Server started on localhost:3000 1 3 5 6 4 2
KOA Hedwnwaressares может использоваться для регистрации, обработки исключений, аутентификации и многое другое. Вот Список подразгоний от Koa Wiki Отказ
Давайте перейдем к созданию API анализа настроений.
Введите настроение
Мы будем использовать библиотеку Node.js под названием настроения
рассчитать оценки настроения. Эта библиотека выполняет анализ настроения на основе AFINN. Он поставляется со списком слов с его предопределенными оценками. Для каждого предложения он находит средние оценки настроения всех слов в настроении. Он дает счет в диапазоне от -5 до 5, вот -5 – максимально негативное и 5 наиболее положительно. Начнем с установки настроения
Отказ
yarn add sentiment
Давайте посмотрим пример того, как это работает
const Sentiment = require('sentiment'); const sentiment = new Sentiment(); let result = sentiment.analyze('Cats are amazing.'); console.log(result); /* { score: 4, comparative: 1.3333333333333333, tokens: [ 'cats', 'are', 'amazing' ], words: [ 'amazing' ], positive: [ 'amazing' ], negative: [] } */ result = sentiment.analyze('Cats are lazy'); console.log(result); /* { score: -1, comparative: -0.3333333333333333, tokens: [ 'cats', 'are', 'lazy' ], words: [ 'lazy' ], positive: [], negative: [ 'lazy' ] } */
Вот Оценка
Это сумма оценок настроения всех слов, а Сравнительный
это средний балл. Мы заинтересованы в Сравнительный
счет.
Давайте интегрируем анализ настроений с нашим приложением KOA.
KOA + настроение
Нам нужно установить KOA-роутер
промежуточное программное обеспечение для использования маршрутов в KOA и KOA-BodyParser
для анализа запроса тела. Давайте установим их,
yarn add koa-router koa-bodyparser
Теперь мы строим финальную API. Мы будем использовать следующую конфигурацию для API.
- Опубликовать запрос на
Анализ
- JSON Запрос Тело формата
{«Текст»: «Текст, который будет проанализирован»}
- JSON Ответ формата
{«Текст»: «Текст, который будет проанализирован», «Оценка»: 0,3}
- Оценка настроений в диапазоне от -1 до 1 вместо -5 до 5
const Koa = require('koa'); const Router = require('koa-router'); const Sentiment = require('sentiment'); const bodyParser = require('koa-bodyparser'); const app = new Koa(); const router = new Router(); const sentiment = new Sentiment(); // Analyze a text and return sentiment score in the range of -1 to 1 function analyze(text) { const result = sentiment.analyze(text); const comp = result.comparative; const out = comp / 5; return out; } // Use bodyparser middleware to parse JSON request app.use(bodyParser()); // Define POST request route to analyze the text router.post('/analyze', async (ctx, next) => { // Look for text property on request body const text = ctx.request.body.text; if (text) { // Analyze the given text const score = analyze(text); // Send response ctx.body = { text, score }; } else { // Send error if there's not text property on the body ctx.status = 400; ctx.body = { "error": "Please provide a text to analyze" }; } }); // Use Koa Router middleware app .use(router.routes()) .use(router.allowedMethods()); // Finally, start the server app.listen(3000, function(){ console.log('Server started on localhost:3000'); });
Это наше API анализа настроений. Мы пройдем через его линию по линии.
- Сначала мы импортируем необходимые библиотеки и инициализируем их.
анализировать ()
принимает текстовый ввод и возвращает его оценку настроения в диапазоне -1 до 1App.use (BodyParser ())
Мы говорим KOA использовать промежуточное программное обеспечение BodyParser для разбора запросов JSON- Мы определяем
Анализ
Маршрут для анализа текста. Этот маршрут принимает только пост запросы. - Функция в
Анализ
Маршрут пытается получить текстовое свойство по запросу. Если это доступно, отправьте ответ на клиента с счет и текста. Если нет, мы отправляем ошибку. - Мы говорим KOA использовать маршрутизатор промежуточного программного обеспечения
- И, наконец, начните сервер с
Слушать
Что обвиняет наши настроение API анализа, используя Koa.js. Полный код доступен на этом Github Repo Отказ В части 2 Учебное пособие KOA мы будем покрывать журнал и добавление аналитики на наше настроение API анализа.