質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

448閲覧

HTMLで入力した文字列を読み取り計算結果を出したいです

Chibichan

総合スコア72

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/04/16 17:13

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);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2022/04/16 18:46

エラーメッセージは全文記載してください。 エラーの出ている行数などもわかるはずなので、どの部分でエラーが出ているのかわかるはずです。 ちなみに上記のコードはエラーが出ませんでしたよ?
m.ts10806

2022/04/16 20:45

本当にやりたいことがこれだけであればNode.jsじゃなくてもいいと思うのですが、 Node.jsでしたいとしても、サーバーサイドの環境構築はどのようにしたのですか?
Chibichan

2022/04/17 08:16

以下のようなエラーがでます。始めたばかりでして、ローカルサーバをNodeで立ち上げたいのですが、 以下のようなエラーがでて、ローカルホストにすることができません。 > node adding_server.js node adding_server.js ^^^^^^^^^^^^^ Uncaught SyntaxError: Unexpected identifier
mather

2022/04/17 08:19

もしかして node コマンドでインタラクティブシェルを起動してから node adding_server.js を実行していませんか?インタラクティブシェルを起動した場合、最初にこんな表示が出ているはずです。 Welcome to Node.js v14.19.0. Type ".help" for more information. > そうではなくて、 node adding_server.js を直接コンソール上で実行してください。
Chibichan

2022/04/17 08:38

ありがとうございます!できました! ローカルホストで数字を入力してSubmitをクリックするとすべて消えてしまい、ターミナルでも何も表示されません…req.on('end', function ()以下のコードが間違っていると思うんですが、入力した文字列の取得は、どうしたらいいのでしょうか。よろしくお願いいたします。
guest

回答1

0

ベストアンサー

ログ出力してデバッグしてみましょう。

js

1 req.on('end', function () { 2 console.log(`body = "${body}"`); 3 let postedNums = qs.parse(body); 4 console.log(`postedNums = ${postedNums}`); 5 let num1 = parseInt(postedNums[0]); 6 let num2 = parseInt(postedNums[1]); 7 let sum = num1 + num2; 8 console.log(`sum = ${sum}`); 9 res.writeHead(200); 10 res.end(sum); 11 });

投稿2022/04/17 08:47

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chibichan

2022/04/17 11:10

ありがとうございます! 解決しました!ログの使い方もわかりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問