Сервер не работает после регистрации, но данные хранятся в БД - PullRequest
0 голосов
/ 16 мая 2018

Когда я пытаюсь зарегистрироваться, я получаю следующую ошибку в терминале, и сервер выключается Error: Can't set headers after they are sent

Появляется только когда я регистрируюсь, но никогда, когда я вхожу. Также все данные хранятся в послесловиях моего MongoDB

Может кто-нибудь объяснить мне, что я здесь не так делаю?

Вот мой код, где я регистрируюсь

exports.signup = function (req, res, next) {
  var email = req.body.email;
  var password = req.body.password;
  var role = req.body.role;
  var firstName = req.body.firstName;
  var lastName = req.body.lastName;
  var phone = req.body.phone;
  var number = req.body.number;
  var street = req.body.street;
  var city = req.body.city;
  var postcode = req.body.postcode;
  if (!email || !password) {
    return res.status(422).json({ error: "You must provide an email and password" });
  }

  // Check if user already exists, send error if they do
  User.findOne({ email: email }, function (err, existingUser) {
    if (err) { return next(err) }
    if (existingUser) { return res.status(422).json({ error: "Email taken" }) }
    var user = new User({
      email: email,
      password: password,
      userData: [{
        role: role,
        firstName: firstName,
        lastName: lastName,
        phone: phone,
        address: [{
          number: number,
          street: street,
          city: city,
          postcode: postcode
        }],
      }],
    });
    user.save(function (err) {
      if (err) { return next(err) }
      res.json({ user_id: user._id, token: tokenForUser(user) });
      res.json({
        data: {
          email: email,
          password: password,
          userData: [{
            role: role,
            firstName: firstName,
            lastName: lastName,
            phone: phone,
            address: [{
              number: number,
              street: street,
              city: city,
              postcode: postcode
            }],
          }],
        }
      });
    });
  });
}

1 Ответ

0 голосов
/ 16 мая 2018

Этот пример может вам помочь,

user.save(function (err) {
    if (err) { return next(err) }
    //res.json({ user_id: user._id, token: tokenForUser(user) });
    res.json({
      user_id: user._id,
      token: tokenForUser(user),
      data: {
        email: email,
        password: password,
        userData: [{
          role: role,
          firstName: firstName,
          lastName: lastName,
          phone: phone,
          address: [{
            number: number,
            street: street,
            city: city,
            postcode: postcode
          }],
        }],
      }
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...