user.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. 'use strict';
  2. const assert = require('assert');
  3. const _ = require('lodash');
  4. const { ObjectId } = require('mongoose').Types;
  5. const { CrudService } = require('naf-framework-mongoose/lib/service');
  6. const { UserError, ErrorCode } = require('naf-core').Error;
  7. const jwt = require('jsonwebtoken');
  8. class UserService extends CrudService {
  9. constructor(ctx) {
  10. super(ctx, 'user');
  11. this.model = this.ctx.model.User;
  12. }
  13. // 创建登录Token
  14. async createJwtPwd(password) {
  15. const { secret } = this.config.jwt;
  16. const token = await jwt.sign(password, secret);
  17. return token;
  18. }
  19. async create(data) {
  20. const { name, mobile, password } = data;
  21. assert(name, '用户名不能为空');
  22. assert(password, '密码不能为空');
  23. const has_phone = await this.model.findOne({ mobile });
  24. if (has_phone) {
  25. throw new UserError('此身份手机号已被注册,请更换手机号');
  26. } else {
  27. // const pas = await this.createJwtPwd(password);
  28. data.password = { secret: password };
  29. const res = await this.model.create(data);
  30. return res;
  31. }
  32. }
  33. }
  34. module.exports = UserService;