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

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

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

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

4640閲覧

express form post送信 値を取得したい

ochiba2525

総合スコア16

Node.js

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2018/04/15 06:37

編集2018/04/15 07:19

フォームに入力した値をPOST送信する際に値が渡らず、困っています。

調べてもjsx記法からのexpressのreqで受け取る記事がなかなか見つからず、
最終的にここで質問させていただきます。

初歩的な質問でしたら、申し訳ないのですが、何卒よろしくお願いいたします。

下記にコードを書きます。

server.js

var express = require("express"); var app = express(); var bodyParser = require('body-parser'); app.set("view engine", "jsx"); app.engine('jsx', require('express-react-views').createEngine()); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post("/test", (req, res) => { console.log("req.body = " + req.body); // <-undefined res.render("./afterTest.jsx"); }); app.listen(3000); console.log('listening....3000');

test.jsx

import React, { Component } from 'react'; class MsgInput extends Component { constructor(props) { super(props); this.state = { message: '' } } render() { return ( <form action="/test" method="POST" > <textarea placeholder='メッセージを入力してください' rows={10} value={this.state.message} onChange={(e) => this.setState({message: e.target.value})} required /> <button className="btn_confirm">送信</button> </form> ); } } export default MsgInput;

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

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

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

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

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

guest

回答1

0

ベストアンサー

'undefined'とログ出力されるということはリクエスト自体は対象のルートで受け取ることが出来ているのですよね。

とりあえず、クライアント側のコードのtextareaにname属性の指定がないので、まずはそこから試してみては?

投稿2018/04/15 07:06

編集2018/04/15 07:10
HayatoKamono

総合スコア2415

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

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

ochiba2525

2018/04/15 07:22

ありがとうございます!! name属性が足りていなかったようです。 req.body.name属性で値が取れました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問