HTMLから得た文字列をJSで計算して結果を出したいのですが、JSでの取得方法がはっきりと
わかりません。以下のように見よう見まねでしてみました。Nodeを起動して試してみたいのですが、Uncaught SyntaxError: Unexpected identifierとなり起動できません。
文字列の取得方法とNode起動でエラーがでる理由のご教授お願い致します。
あと、VSコードですと、なぜかqsに線が上から入ります。
HTMLファイル
1<!DOCTYPE html> 2<html> 3<head> 4 <title>Form Document</title> 5</head> 6<body> 7 <form method="post"> 8 Number 1: <input type="text" name="number_1"><br> 9 Number 2: <input type="text" name="number_2"><br> 10 <input type="submit" value="Submit"> 11 </form> 12 13</body> 14</html>
JSファイル
1const fs = require('fs'); 2const http = require('http'); 3const { url } = require('inspector'); 4var qs = require('querystring'); 5 6const formDocument = fs.readFileSync('form.html', 'utf-8'); 7 8const requestListener = function (req, res) { 9 if(req.method === 'GET'){ 10 11 res.writeHead(200, {'Content-Type' : 'text/html'}); 12 res.end(formDocument); 13 } 14 if (req.method === 'POST') { 15 let body = ''; 16 17 req.on('data', function (chunk) { 18 body += chunk; 19 }); 20 21 req.on('end', function () { 22 let postedNums = qs.parse(body); 23 let num1 = parseInt(postedNums[0]); 24 let num2 = parseInt(postedNums[1]); 25 let sum = num1 + num2; 26 res.writeHead(200); 27 res.end(sum); 28 }); 29 } 30 31} 32const server = http.createServer(requestListener); 33server.listen(3000);
エラーメッセージは全文記載してください。
エラーの出ている行数などもわかるはずなので、どの部分でエラーが出ているのかわかるはずです。
ちなみに上記のコードはエラーが出ませんでしたよ?
本当にやりたいことがこれだけであればNode.jsじゃなくてもいいと思うのですが、
Node.jsでしたいとしても、サーバーサイドの環境構築はどのようにしたのですか?
以下のようなエラーがでます。始めたばかりでして、ローカルサーバをNodeで立ち上げたいのですが、
以下のようなエラーがでて、ローカルホストにすることができません。
> node adding_server.js
node adding_server.js
^^^^^^^^^^^^^
Uncaught SyntaxError: Unexpected identifier
もしかして node コマンドでインタラクティブシェルを起動してから node adding_server.js を実行していませんか?インタラクティブシェルを起動した場合、最初にこんな表示が出ているはずです。
Welcome to Node.js v14.19.0.
Type ".help" for more information.
>
そうではなくて、 node adding_server.js を直接コンソール上で実行してください。
ありがとうございます!できました!
ローカルホストで数字を入力してSubmitをクリックするとすべて消えてしまい、ターミナルでも何も表示されません…req.on('end', function ()以下のコードが間違っていると思うんですが、入力した文字列の取得は、どうしたらいいのでしょうか。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー