回答編集履歴

1

追記

2018/05/30 03:26

投稿

yhg
yhg

スコア2161

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