nodejsでwebhook受信サーバーを作成する。

みなさんこんばんは!中野です。 今回はnodejsで基本的なwebhook受信サーバーを作ろうと思います。

サンプルコード

[server_sample.js]

var http = require("http");

http.createServer(function(req, res) {
  if(req.method === 'POST') {
    var data = ''; 
    req.on('data', function(chunk) {data += chunk})
        .on('end', function() {
            // ここに行いたい処理を記述
            console.log(data);
            console.log(req.url);
            res.writeHead(200, {'Content-Type': 'text/json'});
            res.end("ok");
        })
     }
  }).listen(12345);
  • var http = require("http"); ここでモジュールをインポートして
  • http.createServer(function(req, res) { ここで受信していますね
  • 今回はpostだけ受信していますね
  • console.logで受信の中身と、受信のurlをgetする方法をいれています。
  • res.endでリクエストをかえします。
  • 使用portはlisten(12345)なので12345番を使用しています。

実際にリクエストを送ってみる。

まず先にサーバーを起動します。

node server_sample.js

新しいターミナル(以下ターミナル2)に、実際にリクエストを送ります

curl -X POST http://localhost:12345/published -d 'body test'

[ターミナル1]

body test
/published

[ターミナル2]

ok

以上のような結果になっていれば大丈夫です。

デーモン化

webhookサーバーで運用するのであればデーモン化は必須事項です。 それではやってみましょう、まずパッケージをインストールして、そのまま起動します。

yarn add forever
yarn forever start server_sample.js  

[結果]

Done in 0.21s.

確認

ps aux | grep server_sample.js    

終了

killコマンドで終了します。

最後に

nodejsでwebhookサーバーの制作について紹介しました。 次回はいよいよ、strapiとの連携をしようと思います。 ありがとうございました。

Nakano
Nakano
Back-end engineer

AWS,Rails,UE4,vue.js,hugo,その他なんでもやりたい

関連項目