跳到主要内容
CNode

求助mongorito的问题

问答
LLee94发布于 10 年前最后回复 10 年前
126630

仿照别人写了个Model如下

import { Model } from 'mongorito';
import bcrypt from './bcrypt';
class UserModel extends Model {
  configure() {
    this.privateFields = ['password', 'created_at', 'updated_at']
    this.before('save', 'validateFields');
    this.before('save', 'encryptPassword');
  }
  * validateFields(next) {
    const username = this.get('username');
    const password = this.get('password');
    if (!username) {
      throw new Error('No username provided');
    }
    if (!password) {
      throw new Error('No password provided');
    }
    const user = yield UserModel.where('username', username).find();
    if (user.length > 0) {
      throw new Error('User already exists');
    }
    yield next;
  }

  * encryptPassword(next) {
    const salt = yield bcrypt.genSalt(15);
    this.password = yield bcrypt.hash(this.password, salt);
    yield next;
  }
}

let user = new UserModel({
	username: 'admin',
	password: 'password'
})

yield user.save();

无法保存到mongodb里面 如果把两个中间件去掉倒是可以 ,,求助

查看回复

回复 (1)

L
Lee94#110 年前

到validateFields里面之后next就变成了undefined

参与回复

登录后即可参与回复。登录