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}}