
シェア:
フレンドリーな技術教育者、家族思い、多様性チャンピオン、たぶんちょっと議論しすぎ。元バックエンドエンジニア。JavaScript(フロントエンドまたはバックエンド)、素晴らしいVue.js、DevOps、DevSecOps、JamStackのことなら何でも。DEV.toのライター
Node.js APIを構築する5つの方法
この記事では、以下の5つの方法で小さなAPIを構築する方法を紹介する。 Node.jsと4つの人気のあるフレームワークを使って、5つの方法で小さなAPIを構築する方法を紹介します。
Express.jsで利用可能なHTTPフレームワークのひとつである。 Node.js.私たちは、多くの Node.jsのコンテンツの多くに使用しています。
異なるフレームワークで同じ機能を作るという類似点は、チュートリアルのものとは異なるフレームワークでデモの1つを実装する際に、何らかのヒントを与えてくれるかもしれません。期待しています。
エクスプレス
まずはお馴染みのものから。 Express.jsを生成するための軽量で「独裁的」なフレームワークである。 Node.jsベースのウェブ・モバイル・アプリケーションを作成するための軽量で「独創的」なフレームワークだ。
サーバーの作成
IDEまたはこのコマンドでプロジェクト・ディレクトリを作成する。
アプリケーション用のファイル(通常は app.jsまたは index.js).
フラグで質問に答えることなく、基本的な NPM パッケージファイルを生成して NPM でプロジェクトを初期化します。 yフラグを使います。
インストール Express.jsパッケージをインストールする。
を修正する。 index.jsを修正し、以下のソースコードを追加して、アプリと exampleルートを作成します。
// index.js
const express = require('express')
const app = express()
const port = process.env.PORT || 3000
app.get('/example', (req, res) => {
res.json({ message: 'Looks good to me!' })
})
app.listen(port, () => {
console.log(`listening on port ${port}`)
})
サーバーの実行
コマンドラインから nodeコマンドラインを使ってアプリを起動する。コマンドラインを使ってアプリを起動する。 npm startに慣れているかもしれないが、多くの場合、アプリケーション・ファイル上でこのコマンドを実行するだけだ。
これでPostmanを使ってリクエストし、レスポンスを見ることができる。

Node.js標準ライブラリ
Node.jsには、HTTPリクエストをリッスンし、レスポンスを構築する組み込みパッケージがある。他のフレームワークはこれを簡素化し、他の方法でビルドしなければならない機能を複数追加している。
サーバーの作成
IDEまたはこのコマンドでプロジェクト・ディレクトリを作成する。
アプリケーション用のファイル(通常は app.jsまたは index.js).
パッケージのインストールが必要になるまで、NPMを初期化する必要はない。この例では Node.jsに組み込まれたパッケージを使うので、NPMもパッケージファイルも必要ありません(🎉🎉🎉 AND NO node_modulesディレクトリ🎉🎉)。
を修正する。 index.jsを修正し、以下のソースコードを追加して、アプリと exampleルートを作成します。
// index.js
const http = require('http')
const port = process.env.PORT || 3000
const requestHandler = (req, res) => {
if (req.url === '/example' && req.method === 'GET') {
res.writeHead(200, { 'Content-Type': 'application/json' })
res.end(JSON.stringify({ message: 'Node.js only: Looks good to me!' }))
} else {
res.writeHead(404, { 'Content-Type': 'application/json' })
res.end(JSON.stringify({ message: 'Not found!' }))
}
}
const server = http.createServer(requestHandler)
server.listen(port, () => {
console.log(`listening on port ${port}`)
})
サーバーの実行
コマンドラインから nodeコマンドラインを使用してアプリを起動します。
これでPostmanを使ってリクエストし、レスポンスを見ることができる。

Koa.js
Koa.jsの開発者たちによって設計された。 Express.jsKoa.jsはExpress.jsの開発者と同じ開発者によって設計され、より軽量で表現力豊かで、コードをより細くし、エラー処理を大幅に向上させるように作られている。Koa.jsは、Express.jsの開発者と同じ開発者によって設計された。
サーバーの作成
IDEまたはこのコマンドでプロジェクト・ディレクトリを作成する。
アプリケーション用のファイル(通常は app.jsまたは index.js).
フラグで質問に答えることなく、基本的な NPM パッケージファイルを生成して NPM でプロジェクトを初期化します。 yフラグを使います。
インストール Koa.jsと、JSONレスポンスのルーティングと送信をサポートするパッケージをインストールします。 注意してください:Koaは、ルーティング(url条件以外)、JSONレスポンスをサポートしていません。
を修正する。 index.jsを修正し、以下のソースコードを追加して、アプリと exampleルートを作成します。
// index.js
const Koa = require('koa')
const Router = require('@koa/router')
const json = require('koa-json')
const app = new Koa()
const router = new Router()
const port = process.env.PORT || 3000
app
.use(router.routes())
.use(router.allowedMethods())
.use(json({ pretty: false }))
router.get('/example', (ctx) => {
ctx.body = { message: 'Koa.js: Looks good to me!' }
})
app.listen(3000)
サーバーの実行
コマンドラインから nodeコマンドラインを使用してアプリを起動します。
これでPostmanを使ってリクエストし、レスポンスを見ることができる。

レスティファイ
サーバーの作成
IDEまたはこのコマンドでプロジェクト・ディレクトリを作成する。
アプリケーション用のファイル(通常は app.jsまたは index.js).
フラグで質問に答えることなく、基本的な NPM パッケージファイルを生成して NPM でプロジェクトを初期化します。 yフラグを使います。
インストール Restifyパッケージをインストールする。
を修正する。 index.jsを修正し、以下のソースコードを追加して、アプリと exampleルートを作成します。
// index.js
var restify = require('restify')
const port = process.env.PORT || 3000
var server = restify.createServer()
server.get('/example', (req, res, next) => {
res.json({ message: 'Restify: Looks good to me!' })
next()
})
server.listen(port, function() {
console.log(`listening on port ${port}`)
})
サーバーの実行
コマンドラインから nodeコマンドラインを使用してアプリを起動します。
これでPostmanを使ってリクエストし、レスポンスを見ることができる。

ハピ
hapiは のためのフレームワークです。.当初はウォルマートのブラックフライデーのトラフィックを大規模に処理するために開発されました、 hapiは、エンタープライズグレードのバックエンドニーズのための実証済みの選択肢であり続けています。
サーバーの作成
IDEまたはこのコマンドでプロジェクト・ディレクトリを作成する。
アプリケーション用のファイル(通常は app.jsまたは index.js).
フラグで質問に答えることなく、基本的な NPM パッケージファイルを生成して NPM でプロジェクトを初期化します。 yフラグを使います。
インストール hapiパッケージをインストールする。
を修正する。 index.jsを修正し、以下のソースコードを追加して、アプリと exampleルートを作成します。
// index.js
const Hapi = require('@hapi/hapi')
const port = process.env.PORT || 3000
const init = async () => {
const server = Hapi.server({
port: port,
host: 'localhost'
})
server.route({
method: 'GET',
path: '/example',
handler: (req, h) => {
return { message: 'hapi: Looks good to me!' }
}
})
await server.start()
console.log('Server running on %s', server.info.uri)
}
init()
サーバーの実行
コマンドラインから nodeコマンドラインを使用してアプリを起動します。
これでPostmanを使ってリクエストし、レスポンスを見ることができる。

結論
Node.jsは素のままでも使えますが、ルーティングやレスポンス・タイプといった機能に対する独自のソリューションをサポートする代償を払うことになります。パフォーマンスのためにコードを最適化する最善の方法を熟知していれば、パッケージの肥大化はほとんどなく、アプリケーションは高速になります。あなたは あなたはルーティングやその他の機能については、ここで紹介したようなフレームワークを使わなくても、オープンソースのソリューションを見つけることができます。
一方 Express.jsはは独創的だが、多くの組み込み機能がある。最速ではないが、遅いわけではない。Express.jsは最も簡単に使い始めることができる。
Restifyは、RESTfulなアプリケーションをスケールするために意図的に構築されており、そのシンプルさにもかかわらず、いくつかの最大規模の Node.jsで使用されています。
hapiは、完全な機能とエンタープライズ対応でありながら、高速に拡張できるように構築されています。
Koa.jsは Express.jsのに代わる非同期処理に特化したソフトウェアです。
多くの開発者は、最高のサポートやコミュニティがある方を選ぶでしょう。 hapiと Express.js.
すべてのコード
すべてのコードが GitHubの単一リポジトリにすべてのコードがあります。にある。