Node.js上的ReCaptcha验证

时间:2017-03-25 18:49:43

标签: javascript node.js recaptcha

在我的快递服务器上,g-recaptcha-response总是不返回任何内容。这是我目前的代码:

    <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

1 个答案:

答案 0 :(得分:0)

在问题下面的简短讨论中OP接受的正确答案涉及将正文解析中间件(body-parser)添加到管道,以便请求对象的body属性正确在从那里读取值之前初始化。