Q&A
AngularJSの$httpサービスによってPOST送信をしてNode.jsのHttp serverで表示されるファイルに受けてメッセージを応答させたいのですが、やり方がわかりません。
post.html
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="UTF-8" /> <title>AngularJS TIPS</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script> <script src="todo.js"></script> </head> <body ng-controller="MyController"> <form name="myForm" novalidate> <label for="name">名前:</label> <input id="name" name="name" type="text" ng-model="name" /> <button ng-click="onclick()">送信</button> </form> <div>{{result}}</div> </body> </html>
todo.js
angular.module('myApp', []) .controller('MyController', ['$scope', '$http', '$httpParamSerializerJQLike', function($scope, $http, $httpParamSerializerJQLike) { $scope.onclick = function() { $http({ method: 'POST', headers: { // 1リクエストヘッダーを設定 'Content-Type' : 'application/x-www-form-urlencoded;charset=utf-8' }, // 2リクエストデータをjQueryと同様の形式で送信 transformRequest: $httpParamSerializerJQLike, url: '???', data: { name: $scope.name } }) .success(function(data, status, headers, config){ $scope.result = data; }) .error(function(data, status, headers, config){ $scope.result = '!!通信に失敗!!'; }); }; }]);
ここまではできたのですが、Node.jsのHttp serverで表示されるファイルの形式と書き方がわかりません。Node.jsということはphpではなくjsのファイルということのように思いますが、jsでPOST情報を受けてメッセージを応答させるということで良いのか、または他の形式があるのかについてご教示いただきたいです。
参考にしたページ:
http://www.buildinsider.net/web/angularjstips/0036
nodeではなければここに書いてあるようなphpファイルで応答できるとは思うんですが・・・。