【发布时间】:2015-08-04 11:28:57
【问题描述】:
我正在使用 MEANJS 创建一个应用程序。我有一个这样定义的猫鼬模式:
var UserdetailSchema = new Schema({
fullName: {
type: String,
trim: true
},
userName: {
type: String,
trim: true
},
mobile: {
type: String,
default: '',
trim: true
},
address: {
type: String,
trim: true
},
suburb: {
type: String
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Userdetail', UserdetailSchema);
我想要实现的是在登录用户被重定向到编辑视图以更新 userdetails 架构中的“移动、郊区、地址”等其余信息之后。
这是我的控制器。我已将默认 create() 方法更改为以下内容:一旦插入的第一步完成,我就会重定向到编辑它。
// Create new Userdetail for current user
function create(FullName,UserName) {
// Create new Userdetail object
var userdetail = new Userdetails ({
fullName: FullName,
userName: UserName
});
// Redirect after save
userdetail.$save(function(response) {
$location.path('userdetails/' + response._id+'/edit');
console.log(response._id);
// Clear form fields
//$scope.name = '';
}, function(errorResponse) {
console.log(errorResponse.data.message);
$scope.error = errorResponse.data.message;
});
};
要创建用户详细信息,我只插入 fullName 和 userName 作为第一步,稍后再更新。
问题是,它只允许我插入 1 个用户详细信息,并且如果我尝试插入另一个用户的另一个用户详细信息。尽管架构中没有名称,但它会给出错误“名称已存在”。
用于创建用户详细信息的服务器端代码
/**
* Create a Userdetail
*/
exports.create = function(req, res) {
var userdetail = new Userdetail(req.body);
userdetail.user = req.user;
userdetail.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(userdetail);
}
});
};
【问题讨论】:
-
您到底会出现什么错误,并显示您正在执行插入的代码。仅查看您的架构无助于识别问题。
-
感谢“ThrowsException”的回复,我已经包含了我更新的 create() 方法。我希望它现在有所帮助。
-
你的服务器端代码怎么样。您的客户端不是试图写入数据库的对象。
-
我没有对服务器端进行任何更改。我已经包含了我的服务器端创建方法代码。
-
从外壳中删除我的集合“userdetails”并尝试再次插入后,我得到了它。我点击了这个链接stackoverflow.com/questions/24878847/…。更多的是 MongoDB 问题。
标签: node.js mongodb mean-stack