Express和Jade,传入变量

时间:2014-08-21 05:46:20

标签: node.js backbone.js express captcha recaptcha

我正在尝试安装这个验证码插件,这是我到目前为止(直接来自他们的代码,只是调整到我的风格)

以下是验证码和我正在遵循的步骤:https://github.com/mirhampt/node-recaptcha

在我的router.js文件中:

app.get('/account/verification/:token/', require('./views/account/verification/index').verifyHuman);

在我的/views/account/verification/index.js文件中:

exports.verifyHuman = function(req, res, next){
  var Recaptcha = require('recaptcha').Recaptcha;
  var recaptchaKeys = req.app.config.recaptchaKeys;
  var recaptcha = new Recaptcha(recaptchaKeys.publicKey, recaptchaKeys.privateKey);

  console.log(recaptcha.toHTML()); //this returns a script tag with an iframe and stuff in it

  res.render('account/verification/captcha', {
      layout: false,
      locals: {
          recaptcha_form: recaptcha.toHTML()
      }
  });
};

然后我的/views/account/verification/captcha.jade文件:

      div#captcha
  script(type='text/template', id='tmpl-captcha-verification')
    form#captcha-verification
      #{recaptcha_form}

      button.btn.btn-primary.btn-captcha-verification(type='button') Check Captcha

我无法显示验证码脚本。它以未定义但以奇怪的方式出现。这是我的控制台中出现的内容:

<script type="text/template" id="tmpl-captcha-verification"><form id="captcha-verification"><undefined></undefined><button type="button" class="btn btn-primary btn-captcha-verification">Check Captcha</button></form></script>

我甚至可以尝试#{layout},我在控制台中看到了这个:

<script type="text/template" id="tmpl-captcha-verification"><form id="captcha-verification"><false></false><button type="button" class="btn btn-primary btn-captcha-verification">Check Captcha</button></form></script>

就像jade试图对其进行格式化,但其中一个主要问题是它未定义,当我/views/account/verification/index.js文件中的变量console.log不是时。

另请注意,如果我执行!= recaptcha_form,则只显示html中的表单,如果此!= recaptcha_form代码甚至不存在那样。

我在其他问题上搜索了这个答案,我仍然很困惑。任何帮助将不胜感激。感谢

0 个答案:

没有答案