サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >スクリプト:Node.jsスクリプトの作成

スクリプト

Node.jsスクリプトの作成

スクリプトの作成

Node.js スクリプトは、 1モジュール1ファイル として扱われます。
以下のように module.exports で関数をモジュールとして定義します。

サンプルコード

例)リクエストとして渡されたパラメータに応じて文字列をレスポンスボディとして返却するスクリプト

function myFunc(req, res) {
  if (req.query.name) {
    res.send('Hello,' + req.query.name);
  } else {
    res.send('Hello');
  }
}

module.exports = myFunc;

匿名関数を用いて以下のように定義することもできます(推奨)

module.exports = function(req, res) {
  if (req.query.name) {
    res.send('Hello,' + req.query.name);
  } else {
    res.send('Hello');
  }
}

module.exports についての詳細はNode.js Documentationをご参照ください。

リクエスト・レスポンス

モジュールとして定義された関数には Express.js 準拠の2つの引数である request オブジェクトと response オブジェクトが渡されます。

requestオブジェクトのプロパティ
名前 説明
request.query クエリストリングで渡されたパラメーターのオブジェクト
request.body リクエストボディで渡されたパラメータのオブジェクト(MethodがPOST / PUTの場合のみ)
request.headers リクエストヘッダーのオブジェクト
request.header(key) keyで指定されたリクエストヘッダーの値を返す
request.get(key) keyで指定されたリクエストヘッダーの値を返す
request.url APIリクエスト時のURL
request.method APIリクエスト時のメソッド
responseオブジェクトのプロパティ
名前 説明
response.set(key, value) 引数として渡された値をレスポンスヘッダーに追加
response.get(key) keyで指定されたレスポンスヘッダーの値を返す
response.status(status) 引数として渡された数値をステータスコードとして指定
response.send(data) 引数として渡された文字列をレスポンスボディとして返却
response.json(data) 引数として渡されたJSONをレスポンスボディとして返却

注意 :実行スクリプト処理には必ず res.send()res.json() でレスポンスを返却する処理を記載する必要があります。

対応ライブラリ

スクリプトのコード中では、標準ライブラリに加えて以下のライブラリを使用することができます。

ライブラリ名 version require 説明
ncmb_js 2.1.3 ncmb ニフクラ mobile backend のSDK
bookshelf 0.10.2 bookshelf ORMライブラリ
co 4.6.0 co 非同期処理を記述しやすくするライブラリ
fluent-logger 2.2.0 fluent-logger Fluentdのライブラリ
knex 0.12.6 knex SQLビルダーのライブラリ
lodash 4.16.4 lodash ユーティリティライブラリ
moment 2.15.2 moment 日付型を操作するためのライブラリ
mqtt 1.14.1 mqtt MQTTを利用するためのライブラリ
mysql 2.11.1 mysql MySQLのクライアントライブラリ
pg 6.1.0 pg PostgreSQLのクライアントライブラリ
redis 2.6.2 redis Redisのクライアントライブラリ
socket.io 1.5.1 socket.io Websocketなどを利用するためのライブラリ
superagent 2.3.0 superagent ajaxリクエストを容易に生成するためのライブラリ
underscore 1.8.3 underscore ユーティリティライブラリ
niftycloud-auth 0.1.2 niftycloud-auth ニフクラ API の認証を行うライブラリ
twilio-node 3.17.2 twilio Twilio のライブラリ

※ 対応ライブラリは随時追加予定です。

スクリプトをローカルでデバッグする方法

新しく Node.js のプロジェクトを作成します。
まず以下の内容で package.json を作成し、 package.json と同じディレクトリ内でコマンド $ npm install を実行します。
※ Node.js をローカル環境にインストールしている必要があります。

{
  "name": "ScriptSample",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "Apache License 2.0",
  "dependencies": {
    "express": "^4.14.0",
    "body-parser": "^1.15.2",
    "ncmb": "2.1.2",
    "superagent": "2.2.0"
  }
}

次に以下の内容で index.js を作成し、同じ場所にデバッグするスクリプトファイル(例: testScript.js )を用意します。

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());

//デバッグするスクリプトをモジュールとして読み込む
var moduleForGetMethod = require('./testScript.js');

var apiVersion = "/2015-09-01";
var servicePath = "/script";

//読み込んだスクリプトをハンドラーとして定義
app.get(apiVersion + servicePath + '/testScript.js', moduleForGetMethod);

//expressでサーバーを起動
app.listen(3000, function () {
    console.log('app listening on port 3000');
});

最後に $ node index.js コマンドでローカルサーバーを起動します。
任意のブラウザを起動し、

http://localhost:3000/2015-09-01/script/testScript.js

にアクセスするとスクリプトを呼び出し結果を表示します。

ローカルデバッグ1

参考 :ローカルサーバー起動し、 curl コマンドを利用してスクリプトを呼び出すこともできます。

$ curl http://localhost:3000/2015-09-01/script/testScript.js
hello

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ