【发布时间】:2013-12-27 14:32:03
【问题描述】:
在我的节点应用程序中,我有 designation 模型和以下 Schema。
var DesignationSchema = new Schema({
_id : ObjectId,
designation : String
});
这是嵌入在users Schema 中的。
var UserSchema = new Schema({
fname:String,
lname :String,
email :String,
password :String,
designations : [DesignationSchema]
});
用户可以从select 列表中选择一个/多个designations。下面是我创建选择列表的jade 实现;
select(name="designations")
- for(var i = 0; i < designations.length; i++) {
option(value="#{designations[i]}", name="designations[#{i}]") #{designation.designation}
- }
但是这些值存储为string 数组而不是DesignationSchema 数组:
{
designations : ["{designation:'Some Value' , _id : __DESIGNATION__ID}", "{designation:'Some Value' , _id : __DESIGNATION__ID}"]
}
更新
我在expressjs 中以下列方式推送名称:
var newUser = new User(user.info);
if(user.designations && user.designations.length){
for(var i =0; i < user.designations.length; i ++) {
newUser.designations.push(user.designations[i]);
//I have tried JSON.parse(user.designations[i]) but it raises error that says : 'Unexpected token d'
//user.designations[i] object is something like : {designation:'Some Content', _id : __DESIGNATION__ID}
//IMPORTANT : the __DESIGNATION__ID is not inside single (') or double (") quotes. And I think this is the reason why JSON.parse is raising the error.
}
}
【问题讨论】:
-
您能否发布将条目推送到指定数组的代码?
-
@Saintedlama 我已经更新了我的问题。
-
你能确定 user.designations[i] 不包含字符串而是一个解析的 json 对象吗?
-
@Saintedlama
typeofuser.designations[i] 是string。值为:{ designation: 'Contractor', _id: 52a494e789cf5d181a000001 }。请注意 _id 的值。我认为它失败了 JSON.parse 。但真的不知道如何解决这个问题。 -
好的,那么下一个问题是从浏览器到您的代码的流程中,如果指定 [i] 来自哪里,则 sn-p 内容是从哪里来的。您能否发布所有相关代码部分,包括快速应用设置?
标签: node.js mongodb express mongoose pug