Node.js Mongoose/NodeJS-有没有跳过中间件的方法?

Node.js Mongoose/NodeJS-有没有跳过中间件的方法?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在使用我的save方法save和update。对于我的注册页面,我有一个方法pre(“save”),用于检查用户是否已经存在 因此,我无法再使用“保存”进行更新 我目前的方法是检查对象的某些属性是否已更改(无法在注册页面中设置的属性),如果已更改,我可以“欺骗”跳过pre(“save”)方法。但这离清洁还差得远。例如,如果我想更改用户名(可以从注册页面访问),我就不能这样做 我提出了这个方法,而不是在pre(“save”)方法中进行过滤: user.save(function(error){

我正在使用我的
save
方法saveupdate。对于我的注册页面,我有一个方法
pre(“save”)
,用于检查用户是否已经存在

因此,我无法再使用“保存”进行更新

我目前的方法是检查对象的某些属性是否已更改(无法在注册页面中设置的属性),如果已更改,我可以“欺骗”跳过
pre(“save”)
方法。但这离清洁还差得远。例如,如果我想更改用户名(可以从注册页面访问),我就不能这样做

我提出了这个方法,而不是在
pre(“save”)
方法中进行过滤:

user.save(function(error){
    if( error.name != "UserAlreadyExistError")
我找到了一个解决方案:

当我这样做时:

var user = new UserModel();

user.save()
Mongoose将检查是否有具有给定
\u id
的用户,如果有,将抛出重复的密钥错误

但是,当在
findOne()
方法中检索用户并保存后,它不会抛出任何重复密钥错误,就好像mongoose知道这是一个有意的更新一样


还要注意的是,字段
\u id
必须是准确的这样调用。

一些代码示例肯定会帮助回答的用户和您自己:)