質問するログイン新規登録

回答編集履歴

1

追記

2018/05/30 03:26

投稿

yhg
yhg

スコア2161

answer CHANGED
@@ -1,1 +1,51 @@
1
- HTML側で `require` したところで、Node.js のコードは動かないと思いますので、HTML 側から、サーバーに AJAX で POST リクエスト送信して、サーバー側でそれを受信・処理した後に HTML 側にレスポンスを返すのが良いと思います。
1
+ HTML側で `require` したところで、Node.js のコードは動かないと思いますので、HTML 側から、サーバーに AJAX で POST リクエスト送信して、サーバー側でそれを受信・処理した後に HTML 側にレスポンスを返すのが良いと思います。
2
+
3
+ ------
4
+
5
+ ソースコードを見てみたところ、フロントエンドのAJAX部分は問題ないと思います。
6
+ 問題はサーバー側で、これでは POST されたフォームの内容を受信できません。
7
+
8
+ `http.createServer` で自力で書くと大変なので、`Express` でサーバーを立てると良いでしょう。
9
+ 詳しくは Express の API リファレンスを参照。
10
+
11
+ * [Express 4.x - API リファレンス](http://expressjs.com/ja/4x/api.html)
12
+
13
+ ```javascript
14
+ var express = require('express');
15
+ var bodyParser = require('body-parser');
16
+ var app = express();
17
+
18
+ // POST リクエストで送信されたデータを
19
+ // パースして扱いやすい形にする (今回は JSON が送信されてくるので Object になります)
20
+ app.use(bodyParser.urlencoded({ extended: true }));
21
+
22
+ // ルート '/' に対する POST レスポンスを設定
23
+ app.post('/', function(request, response) {
24
+
25
+ // request.body で formData の内容を参照できます
26
+ console.log(request.body);
27
+
28
+ // なんらかの処理
29
+ .
30
+ .
31
+ .
32
+
33
+ // レスポンスヘッダーのセット
34
+ response.set({
35
+ 'Content-Type': 'text/plain',
36
+ .
37
+ .
38
+ .
39
+ });
40
+
41
+ // レスポンスを返す end() は不要
42
+ response.status(200).send('レスポンスの内容');
43
+
44
+ // or 何もデータを返さない場合は end() を使います
45
+ response.status(404).end();
46
+
47
+ });
48
+
49
+ // ポート 8080 でサーバー立ち上げ
50
+ app.listen(8080);
51
+ ```