我正在尝试从node js向EJS文件传递一个键值对。使用Mongoose进行数据检索它不起作用。
User.find({}).select('name -_id').select('username').then(
users =>{
let JSONobject = {};
for(var i = 0; i < users.length; i++){
JSONobject = Object.assign(JSONobject, users[i]);
}
console.log(JSON.stringify(JSONobject));
res.render("ToDo.ejs",{UserLIst: JSONobject.username});
}
)
字符串
上面是我使用的代码
得到这样的东西:
console pic
我就知道会是这样
[
{ username: '[email protected]',
username: '[email protected]',
username: '[email protected]' }
]
型
2条答案
按热度按时间bejyjqdl1#
看起来问题在于你如何构造JSON对象。你在循环的每次迭代中都要修改用户名键,这会导致最终对象有多个不同值的用户名键,当你将其传递给EJS文件时,它只接受最后一个值。
为了解决这个问题,你可以创建一个用户名数组,并将其传递给EJS文件,尝试这样做:
字符串
azpvetkf2#
您提供的JSON结构存在语法问题,因为它多次使用相同的键。如果您希望表示具有唯一用户名的用户列表,则应该使用对象数组。
字符串
以下是带有数组的版本:
型