关于 thinkjs 和 mongodb 的增删改查操作
这边有个 action
async registerAction() {
// 接受数据
let {
name,
passwd
} = this.post();
passwd = think.md5(passwd);
let userModelInstance = this.model('user');
try { // 写入数据
let _id = await userModelInstance.addUser({
name: name,
passwd: passwd
}); // 用户 ID
// 调用 tokenservice 中间件
let tokenService = think.service('token');
// console.log(tokenService);
let instance = new tokenService();
// 写入 token 信息
let token = await instance.createToken({
userInfo: {
id: _id,
name: name
}
});
// 传输客户端 token
this.http.header('token', token);
return this.success('SUCCESS');
} catch (err) {
think.log(err);
return this.fail('SERVER_INVALID');
}
}
这是 model
async addUser(data = {}) {
let userModelInstance = this.model('user');
return userModelInstance
.add({
name: data.name,
passwd: data.passwd
})
}
这样的操作是没有问题的,但是不想提交一个重复的数据,官方文档中有个方法 model.thenAdd(data, where), 这个方法是当 where 条件未命中到任何数据时才添加数据。所以提交一个不重复的数据,用这个方法怎么写,或者说有更好的方法????
1 回复
简单点,先查再写。 或者 where 判断 name 是否重复,where 可以参考 modle.where(where) 的用法。