Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8913

よく知られたNode.js フレームワークの特徴、インストール方法、ハロー・ワールドまで

$
0
0

StatusCode.NOT_FOUND(404)の処理など、ゼロからコーディングするよりフレームワークを使用するのが普通と思いますが、Express.js以外にも、Node.jsには様々なものが存在します。

GitHub上でスターが多いフレームワークについて、特徴、インストール、Hello, worldを出すところまでをまとめてみました(Hello, worldはできるもののみ)。

GhostはフレームワークというよりCMSですが、自分でホスティングする場合はフリーです。一応調べたのもあって、最後に追記しました。

Node.jsって何?」とか初歩的な使用法を知りたい方は以下の書籍が丁寧で分かりやすいです(解説されてるフレームワークはExpress.jsですが)。

  • Jonathan Wexler著 吉川邦夫監訳 『入門 Node.js プログラミング』 翔泳社、2019

GitHubスター数

  • Express (51,393)
  • koa.js (30,482)
  • Sails.js (21.769)
  • fastify (16,842)
  • hapi (12,954)
  • Adonis (9,248)
  • total.js (4,095)
  • Ghost (35,867)

*2020/01/02時点

Express.js

expressjs.png

特徴

  • 言わずと知られたNode.jsのMVCフレームワーク
  • GitHubのスターは群を抜いて多い(2021/1時点)
  • 最もよく使用されており情報源も多くコミュニティも活発
  • 日本語の情報源も多い(書籍もある)

インストール

yarn add express --save

Hello, world

constexpress=require('express')constapp=express()constport=3000app.get('/',(req,res)=>{res.send('Hello World!')})app.listen(port,()=>{console.log(`Example app listening at http://localhost:${port}`)})

リンク

Koa.js

koa.js.png

特徴

  • Express.jsの開発者らで設計・開発
  • より小型(smaller)で表現力が高く(expressive)堅牢(robust)な基盤を志向
  • Express.jsで実装されていないメソッド・ライブラリに重点1

インストール

yarn global add koa

Hello world

constKoa=require('koa');constapp=newKoa();// responseapp.use(ctx=>{ctx.body='Hello Koa';});app.listen(3000);

Fastify

Fastify.png

特徴

  • パフォーマンスに重点を置いており高速性に特徴

インストール

yarn add fastify --save

Hello, world (async/await)

// Require the framework and instantiate itconstfastify=require('fastify')({logger:true})// Declare a routefastify.get('/',async(request,reply)=>{return{hello:'world'}})// Run the server!conststart=async()=>{try{awaitfastify.listen(3000)fastify.log.info(`server listening on ${fastify.server.address().port}`)}catch(err){fastify.log.error(err)process.exit(1)}}start()

hapi

hapi.png

特徴

  • 理念はシンプル、セキュア
  • 自由な発想(out-of-the-box)による開発も売り
  • 拡張にはmiddlewareではなくPluginを使用
  • Express.jsと同様のアーキテクチャ、かつコーディング量の削減に重点1

インストール

yarn add hapi --save

Hello, world

constHapi=require('hapi');constinit=async()=>{constserver=Hapi.server({port:3000,host:'localhost'});server.route({method:'GET',path:'/',handler:(request,h)=>{return'Hello World!';}});awaitserver.start();console.log('Server running on %s',server.info.uri);};process.on('unhandledRejection',(err)=>{console.log(err);process.exit(1);});init();

リンク

Adonis

Adonis.png

特徴

  • Laravelライクなフレームワーク

インストール

$ yarn global add @adonisjs/cli
$ adnis new demo
$ cd demo
$ adonis serve --dev

リンク

公式サイト

Total.js

totaljs.png

特徴

  • コアHTTPモジュールを土台とした高速なリクエストとレスポンス1
  • 性能とスケーラビリティで評判がよい1
  • ライブラリ・UIコンポーネントが豊富

インストール

Express.jsやKoa.jsほど簡単ではないのでGitHubから空のプロジェクトをダウンロードする(Exampleが多数公開されている)

$ git clone https://github.com/totaljs/emptyproject.git
$ cd emptyproject
$ yarn
$ node index.js

リンク

Sails.js

Sails.js.png

特徴

  • Express.jsが土台で、構造・ライブラリが豊富でありカスタマイズの省力化が可能1
  • Ruby on Railsライク
  • ORMをバンドルしており様々なDBとの連携が容易

インストール

$ yarn global add sails
$ sails new test-project

Web AppかEmptyを聞いてくる。今回は1を選択。

Choose a template for your new Sails app:
1. Web App  ·  Extensible project with auth, login, & password recovery
2. Empty    ·  An empty Sails app, yours to configure
(type"?"for help, or <CTRL+C> to cancel)
?
$ cd test-project
$ sails lift

こんな、おしゃれなメッセージが出てきます。

sailsjs2.png

デフォルトポート番号が他と違うので、localhost:1337にアクセスする。

リンク

公式サイト

ghost

ghost.png

特徴

  • マネージドサービス(Pro)は有料
  • セルフホスティングはフリー
  • セルフホスティングのためのサポートもある(Valet)
  • ググるとWordPressオルタナティブとして頻出
  • テーマも提供されている
  • フレームワークというよりはNode.jsベースのCMS

インストール

$ yarn global add ghost-cli
$ mkdir myapp
$ cd myapp
$ ghost install local

これでインストールされるので、http://localhost:2368/ghostを開く

リンク

公式サイト
GitHub

他の参考となるリンク


  1. Jonathan Wexler著 吉川邦夫監訳 『入門 Node.js プログラミング』 翔泳社、2019(p.92) 


Viewing all articles
Browse latest Browse all 8913

Trending Articles