スマートフォン・タブレットからインターネットサーバーオペレーション
Node.js において、jQuery Ajax の POST メソッドを試してみます。
Node.js で動作テストしてみる場合や、パッケージビルドする場合の参考になるかもしれません。
まず、かんたんに Node.js のインストールのおさらいです。
たとえば、Ubuntu 16.04 LTS 標準のままの apt もしくは apt-get でインストールすると、古いバージョンがインストールされます。
$ sudo apt install nodejs
このことをふまえながら Google 検索してみていくと、Ubuntu では、多くの方が n というバージョン管理パッケージを利用しているようです。
今回は、npm も含めてインストールは簡単に、という思いもあり、以下のページの手順でインストールを進めました。
https://nodejs.org/
LTS( long-term support )版の場合。
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install -y nodejs
最新版の場合。
$ curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
$ sudo apt install -y nodejs
この手順では、Node.js とともに npm もインストールされます。また、nodejs コマンドのほか、node コマンドでも使えるようになっています。
次に、npm を利用して jQuery をインストールします。
$ npm i jquery
ちなみに、バージョンを指定する場合はこうなります。指定していない場合は、つねに最新バージョン(この記事の時点では、3.3.1)となります。
$ npm i jquery@1.12.4
そして、Node.js において jQuery を実行する方法のひとつとして、npm を利用して jsdom-no-contextify をインストールします。
$ npm i jsdom-no-contextify
JSON 形式のデータを POST 送信して、JSON 形式で受ける想定のコードです。
var $ = require('jquery')(require('jsdom-no-contextify').jsdom().parentWindow);
var json_data = {
'id': '0',
'name': 'example'
};
$.ajax({
type:'POST',
url:'https://hoge.jp/hoge',
data:JSON.stringify(json_data),
contentType: 'application/json',
scriptCharset:'utf-8',
dataType: 'json'
}).done(function(data,textStatus,jqXHR) {
console.log(data);
}).fail(function(jqXHR, textStatus, errorThrown ) {
console.log(textStatus);
});
ajax-post.js で保存して実行するものとします。
$ node ajax-post.js
なお、ブラウザ用にビルドする場合に、jsdom-no-contextify は不要です。サンプルコードの1行目は次のようになります。
var $ = require('jquery');
または、
lmport $ from 'jquery';