Express и mongodb (промежуточное значение) не является конструктором - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь зарегистрировать нового пользователя в моей базе данных.Я также использую для этого избыточность.

Я запутался в том, что сообщение об ошибке указывает на проблему.Я столкнулся с ошибкой сервера 500 и следующей строкой?:

'(промежуточное значение) не является конструктором'

Чтобы дать вам более глубокое понимание того, где это может происходитьЯ вставил некоторые важные части моего кода, который инициирует эту последовательность событий, которые приводят к этому.

Вот мое действие:

 accountApi.register(
  email,
  password,
  firstName,
  lastName,
  (errObj, resObj) => {
    if (errObj) {
      return dispatch({
        type: REGISTER_USER_FAILED,
        payload: new Error(errObj.detail)
      });
    }

    const { token } = resObj;

    storage.save(JWT_TOKEN, token, err => {
      if (err) {
        return dispatch({
          type: REGISTER_USER_FAILED,
          payload: err
        });
      }

      return dispatch({
        type: REGISTER_USER_SUCCESS,
        payload: true
      });
    });
  }
);

Вот маршрут API:

const body = {
email,
password,
firstName,
lastName,
date: today,
};
  const ROUTE = "register";
  const url = BASE_ROUTE + ROUTE;
  client.post({ url, body }, cb);
}

внутри API:

async function register(req, res) {
req.checkBody('email').notEmpty().isEmail();
req.checkBody('password')
.notEmpty()
.isAscii()
.isLength({ min: 8 });
req.checkBody('firstName')
.notEmpty()
.isAscii()
.isLength({ min: 3, max: 15 });
req.checkBody('lastName')
.notEmpty()
.isAscii()
.isLength({ min: 3, max: 15 });
 });

 const validationErrors = await req.getValidationResult();
 if (!validationErrors.isEmpty()) {
  return res.status(400).send(responses.validatorResponse(validationErrors));
 }

 const { email, password, firstName, lastName } = req.body;
 const userDoc = await accountManager.register(email, password, firstName, 
 lastName, false);
 return res.status(200).send({ token: jwtHelper.createToken(userDoc) });
 }

в Accountmanger:

async function register(email, password, firstName, lastName, isAdmin) {
  const associationDoc = await Association.getDocumentByEmail(email);

  if (!associationDoc) {
    throw new new Error('Unable to register user. User is not associated with 
any organization yet.')();
  }

  const teamDoc = await 
Team.getDefaultTeamForOrganization(associationDoc.organizationId);
 const hashedPassword = account.hashPassword(password);

  const data = {
    firstName: firstName.toLowerCase(),
    lastName: lastName.toLowerCase(),
    email,
    isAdmin,
    fullName: `${firstName.toLowerCase()} ${lastName.toLowerCase()}`,
    teamId: teamDoc._id,
    hashedPassword,
    registrationStatus: REGISTRATION_STATUSES.NEW_REGISTRATION,
    lastSeen: dates.today(),
  };

  return User.create(data);
}

И внутри пользовательской модели:

async function create(data) { return new Model(data).save(); }

Я используюпочтальон для отправки вызовов API со всей необходимой информацией, но я продолжаю получать это сообщение об ошибке:

(промежуточное значение) не является конструктором

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...