スクリプト
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 | 3.2.0 | 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 | 8.0.3 | 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.17.1",
"body-parser": "^1.19.0",
"ncmb": "3.2.0",
"superagent": "6.1.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
にアクセスするとスクリプトを呼び出し結果を表示します。
参考 :ローカルサーバー起動し、 curl
コマンドを利用してスクリプトを呼び出すこともできます。
$ curl http://localhost:3000/2015-09-01/script/testScript.js
hello
お探しの内容が見つからなかった場合はユーザーコミュニティ
もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。
推奨画面サイズ1024×768px以上