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

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

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

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

1830閲覧

Node.jsでForm から受け取った値に余計な文字(\u001c)が入る。

Yama-guchi

総合スコア18

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2019/08/30 23:47

編集2019/08/30 23:49

FormのSelect画面で値(Tokyo)を選択し、Submitします。
その後、Node.js側で受け取った値に余計な文字が入ってしまいます。

正しい値:Tokyo
誤った値:\u001cTokyo

フロントエンド(html)側:

html

1<form action="/places/update" method="post" enctype="multipart/form-data"> 2 3 <select class="form-control" id="prefecture" name="prefecture"> 4 <option value="Tokyo" selected>Tokyo</option> 5 <option value="Chiba">Chiba</option> 6 <option value="Kanagawa">Kanagawa</option> 7 </select> 8 9 <button type="submit" class="btn btn-success">Register</button> 10</form>

バックエンド(Node.js)側:

Javascript

1router.post("/update", upload.single("file"), (req, res) => { 2 console.log(req.body); 3 console.log(req.body.prefecture); 4 console.log("Tokyo"); 5});

ログの結果が下記になります。

[Object: null prototype] { prefecture: '\u001cTokyo' } Tokyo Tokyo

考えられる原因について教えていただけると助かります。
また、こういった事象に直面した時、どのような迂回策をとれば良いのでしょうか?

Node.js側で不要な文字を削除しようと下記を試しましたが、
値が変わらないので迂回策もわからない状態です。

Javascript

1 req.body.prefecture.replace(/\u001c/g, ""); 2

どうぞよろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

multipart/form-dataを使うと、区切り文字が入るみたいです。

javascript

1restaurant = { prefecture: req.body.prefecture.replace("\u001c", "") }

リンク内容

投稿2019/09/03 14:48

Yama-guchi

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問