Javascript Jade模板呈现错误div,尽管对象存在未定义的错误

Javascript Jade模板呈现错误div,尽管对象存在未定义的错误,javascript,node.js,twitter-bootstrap,express,pug,Javascript,Node.js,Twitter Bootstrap,Express,Pug,当点击我的注册页面时,我的jade模板(带有Twitter引导)生成一个空的error div(即一个红色不透明框,带有关闭链接,没有错误),尽管errors对象返回typeof为“undefined”。我用它来指导检查错误值。守则如下: 控制器: /** * Show sign up form */ exports.signup = function(req, res) { res.render('users/signup', { title: 'Sign up', u

当点击我的注册页面时,我的jade模板(带有Twitter引导)生成一个空的error div(即一个红色不透明框,带有关闭链接,没有错误),尽管errors对象返回typeof为“undefined”。我用它来指导检查错误值。守则如下:

控制器:

/**
 * Show sign up form
 */
exports.signup = function(req, res) {
  res.render('users/signup', {
    title: 'Sign up',
    user: new User()
  });
};
extends ../layouts/default

block content
  .row
    //-.offset1.span5
    .span6
      a(href="/auth/facebook")
        img(src="/img/icons/facebook.png")
      //- a(href="/auth/github")
        //- img(src="/img/icons/github.png")
      a(href="/auth/twitter")
        img(src="/img/icons/twitter.png")
      a(href="/auth/google")
        img(src="/img/icons/google.png")
    .span6
      if (typeof errors != 'undefined') // The following alert shouldn't be rendered
        .fade.in.alert.alert-block.alert-error
          a.close(data-dismiss="alert", href="javascript:void(0)") x
          ul
            each error in errors
              //- li= error.param
              li= error.msg

      block auth
翡翠模板:

/**
 * Show sign up form
 */
exports.signup = function(req, res) {
  res.render('users/signup', {
    title: 'Sign up',
    user: new User()
  });
};
extends ../layouts/default

block content
  .row
    //-.offset1.span5
    .span6
      a(href="/auth/facebook")
        img(src="/img/icons/facebook.png")
      //- a(href="/auth/github")
        //- img(src="/img/icons/github.png")
      a(href="/auth/twitter")
        img(src="/img/icons/twitter.png")
      a(href="/auth/google")
        img(src="/img/icons/google.png")
    .span6
      if (typeof errors != 'undefined') // The following alert shouldn't be rendered
        .fade.in.alert.alert-block.alert-error
          a.close(data-dismiss="alert", href="javascript:void(0)") x
          ul
            each error in errors
              //- li= error.param
              li= error.msg

      block auth
我尝试了以下方法,但每次都得到相同的结果:

if (typeof errors != 'undefined')
if (typeof errors !== 'undefined')
if (typeof errors != undefined)
if (typeof errors !== undefined)
if (null != errors)
if (null !== errors)

编辑:根据您在评论中所说的,
错误
在没有错误时不是
未定义的
;相反,它是一个空数组。这个答案现在检查了这个问题

这将有助于在某个地方看到这一点,但将您的Jade代码更改为这一点可能会解决这一问题:

  - if (errors.length > 0) {// The following alert shouldn't be rendered
    .fade.in.alert.alert-block.alert-error
      a.close(data-dismiss="alert", href="javascript:void(0)") x
      ul
        each error in errors
          //- li= error.param
          li= error.msg
  - }

谢谢,埃文,但不要掷骰子。将块包装在-s和{}s中会产生相同的结果。您是否在其中放置了一个
-console.log(errors)
,以查看Jade当时认为错误是什么?是的,返回的都是空括号[]。好的。我正在改变这个答案来检测它!“你就是那个人,”埃文说。成功了。我觉得自己很愚蠢,因为我没有抓住那个。谢谢