jQueryやNode.jsでpostによりデータを送受信する
postを使ってサーバーにデータを送信したり、レスポンスを受け取る方法です。
jQueryとNode.jsによる方法を記載しました。
1. jQueryでpost
jQueryでブラウザから直接サーバーとやりとりする時によく使うので記載しておきました。
//サーバーに送信するパラメータ
let body_send={
place: "tokushima",
type: "temperature",
value: 23.4
};
post_obj(body_send);//以下のファンクションでbody_sendをサーバーに送信します
function post_obj(body) {
let pass = "./";//送信先のURL
$.post(pass,JSON.stringify(body)).done(function( result ) {
//送受信成功時
//resultにサーバーからのレスポンスが入ってます
//console.log("OK",result);
}).fail(function(result) {
//送受信失敗時
//console.log("NG", result);
});
}
2. Node.jsでpost
Node.jsでサーバーとデータのやりとりをする時に使います。
特にAWSのLambda関数に直接コピペできるようにしました。もちろんその他Node.jsでも使えます。
他のやり方ではレスポンスデータが途中で途切れたりしたのですが、これなら大丈夫でした。
var https = require('https');
exports.handler = async (event) => {
//サーバーに送信するパラメータ
let postData={
place: "kochi",
type: "humidity",
value: 34.5
};
//resにサーバーからのレスポンスが格納されます
let res=await https_post(postData);//postリクエスト
return res;
};
function https_post(body){
let head={
host: 'example.com',//送信先post
port: 443,//httpsなので443
path: '/api/v1/',//"https://example.com/api/v1/"に送信する場合
method: 'POST',//postを指定
headers: {
//必要なヘッダー情報を記載
'Content-Type': 'application/json',
'x-key': 'key',
}
};
return new Promise((resolve, reject) => {
let moji ="";
let req = https.request(head, (res) => {
res.on('data', (chunk) => {
moji += chunk;
//console.log("requesting...",chunk);
});
res.on('end', () => {
console.log('No more data in response.');
resolve(JSON.parse(moji));
});
});
req.on('error', (e) => {
console.log('problem with request: ' + e.message);
reject(e.message);
});
req.write(JSON.stringify(body));
req.end();
});
}
ディスカッション
コメント一覧
まだ、コメントがありません