2017-03-25 10 views
1

、g-recaptcha-responseは常に何も返しません。これは、現時点では私のコードです:エクスプレスサーバー上のNode.js ReCaptcha検証

<div class=container-fluid id=mcenter> 
    <form id='monitstart' action="/monitstart" method="POST"> 
    <input type="text" class="form-control" aria-label="..." name=> 
    <button class="g-recaptcha" data-sitekey="SITEKEYHERE" data-callback="onSubmit"></button> 
    </form> 
</div> 

と私のサーバー

var express = require('express') 
var router = express.Router() 

var request = require('request') 

router.post('/monitstart', function (req, res) { 
request({url: "https://www.google.com/recaptcha/api/siteverify?secret=SECRETHERE&response=" + req.body['g-recaptcha-response']} + '&remoteip=' + req.connection.remoteAddress, function (err, response, body) { 
    req.send(body) 
}) 

}) 

module.exports = router 

そして、私はそれを検証しようとすると、それは私のコード500を与えるとTypeError: Cannot read property 'g-recaptcha-response' of undefined

+0

あなたは 'body-parser'をパイプラインに持っていません。私はこれを答えとして掲示するだろうが、ここには何か間違いがある可能性がある。それでも、私はこれがボディ解析ミドルウェアの欠如であると確信しています。これがうまくいけばメモを書き留めて、私はこのコメントから答えを出すだろう。 –

+0

@WiktorZychla実際にはボディパーサーがなかったので –

+0

これは正しく動作していますかこれが正しい答えですか? –

答えて

0

正しい答えを言うの以下の短い議論の間にOPによって受け入れられる。質問はそこから値が読み取られる前に、要求オブジェクトのプロパティbodyが正しく初期化されるように、ボディ解析ミドルウェア(body-parser)をパイプラインに追加することを含む。

関連する問題