Node.js mongoDB无法在Express页面中看到某些req值

Node.js mongoDB无法在Express页面中看到某些req值,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,让一个对象进入路由,并使其进入页面: 当我查看整个对象时,如下所示: {{userdata}} 我可以看到整个对象,以及我试图获取的值,所有这些都在那里。我可以从该对象唯一地获取用户名和电话等数据,但其中还有其他值,例如: {{verified}}和{{vericode}},当我试图单独访问它们时,它们不会出现。 密钥在那里,可以看到{{userdata.username},但不能看到{{userdata.verified}或{{userdata.vericode} { "_id"

让一个对象进入路由,并使其进入页面: 当我查看整个对象时,如下所示:

 {{userdata}}
我可以看到整个对象,以及我试图获取的值,所有这些都在那里。我可以从该对象唯一地获取用户名和电话等数据,但其中还有其他值,例如:

{{verified}}和{{vericode}},当我试图单独访问它们时,它们不会出现。 密钥在那里,可以看到{{userdata.username},但不能看到{{userdata.verified}或{{userdata.vericode}

{
    "_id" : 5a57afc7b742153776d8afb4,
    "active" : true,
    "since" : 2017-12-03T07:02:25.000Z,
    "name" : "sidx",
    "username" : "sidx",
    "password" : "aPWGOESHERE",
    "phone" : "1234567890",
    "priv" : [
        true
    ],
    "internalnotes" : "",
    "phone3" : "2662626262",
    "phone2" : "4534523452",
    "verified" : "true",
    "vericode" : "true",
    "active_repairs" : [ ],
    "service_history" : [ ],
    "email" : [
        "imam@sumone.com"
    ]
}
希望有人能提供一些见解。对我来说可能是个虫子。所有的值都被正确地存储在数据库中,并且可以让它们表达到html的路径。但不是单独使用这些特定元素

这条线下面是把手上的东西

 Welcome {{user.username}}, to your Dashboard.   <!-- shows username ok!-->

 {{user}}    <!-- shows whole obj with target values incl verified and vericode -->           
 {{user.since}}  <!-- ex. of working showing val like {{user.username}} -->
 {{user.verified}}  <!-- THIS DOES NOT SHOW -->  
 {{user.vericode}}   <!-- THIS DOES NOT SHOW -->  
这将在浏览器视图中呈现,如下所示: (格式可读性缩进)::

因此,当我以这种方式呈现页面时,它会显示,但当我执行{{user.verified}或{{user.vericode}时,在页面呈现之后,它不会显示任何内容

{
    "_id" : 5a57afc7b742153776d8afb4,
    "active" : true,
    "since" : 2017-12-03T07:02:25.000Z,
    "name" : "sidx",
    "username" : "sidx",
    "password" : "aPWGOESHERE",
    "phone" : "1234567890",
    "priv" : [
        true
    ],
    "internalnotes" : "",
    "phone3" : "2662626262",
    "phone2" : "4534523452",
    "verified" : "true",
    "vericode" : "true",
    "active_repairs" : [ ],
    "service_history" : [ ],
    "email" : [
        "imam@sumone.com"
    ]
}
我觉得在这一点上,我可能需要查看我正在运行的XYZ的版本。除非有合理的押韵和理由

但是现在,数据可以通过使用mongoose的Users.update()写入,我可以在进行{{user.phone}更新或{{user.internalnotes}时看到更改,这些更改将在页面中呈现时反映出来

更新(已解决问题):

我必须检查创建架构实例的代码:

  var newUser = new User({
    name: name,
    email: email,
    username: username,
    password: password,
    phone: phone,
    vericode: "false",    //Made sure this was set
    verified: "false",    // <----

  });
var newUser=新用户({
姓名:姓名,,
电邮:电邮,,
用户名:用户名,
密码:密码,
电话:电话,,
vericode:“false”//确保已设置此选项

已验证:“false”,//问题在于在
把手JS中呈现
布尔值

而不是

{{user.verified}}
换成

{{#if user.verified}}
    true
{{else}}
    false
{{/if}}
同样适用于
user.vericode


在查看和编辑用户模型模式并检查创建模式实例然后写入数据库的router.post后,我注意到它需要添加这些模式实例变量,然后注意到了相同的效果。我转到用户模型,确保模式具有数据,然后保存,控制台会出错nd通知我用户模型用户模式中存在语法错误,在“已验证”之后缺少逗号。。
我添加了这个,保存并重新启动了节点服务器,现在我看到了期望的结果,但不是单独的。我怀疑模式设置显然起了作用,我必须理解。这是一个很好的学习课程。保存!

您没有看到保存在mongoDB中的值吗?还是在UI呈现中的值?我可以在mongo控制台中使用db.users.find()来验证它们。当我呈现{userdata}时它列出了对象和db反映的所有内容,包括我试图获取的密钥,也就是'verified'和'vericode'。当使用{{userdata}呈现页面时,我可以看到它们。使用vericode和verified显示整个文档,但是尝试呈现{userdata.vericode}什么都不显示。{{userdata.username}etc显示良好。两个'vericode'和'verified'在模式中,保存到db,但使用db.users.update({…}{$set:{verified=“true”})方法手动添加。希望这更清楚是的,您也可以发布用于呈现的UI代码吗?不是字符串“false”吗你得到的是什么,而不是布尔值false?你是否选中了yes,它是一个字符串文本“false”,预期会返回,因为它在模式中被声明为字符串。因为我现在能够根据原始问题精确地指出我想要的值,看起来就像已解决的一样。我仍然想知道为什么我能够看到{user}元素作为一个整体,但不单独呈现那些特定的键,如当时的{{user.verified}}值。通过修复语法和保存架构找到了修复,但在呈现{{user}时不会显示“verified”和“vericode”在此之前?键“vericode”和“verified”数据类型是字符串,而不是布尔值。当我将其更改为不同的值而不是“true”或“false”时,会出现相同的结果。{{if user.vericode}不会将其视为true,而是运行它的{else}。您可以发布{user}的输出吗?
{{#if user.verified}}
    true
{{else}}
    false
{{/if}}