Почтовый запрос Node.js продолжает загружаться - PullRequest
0 голосов
/ 05 сентября 2018

при попытке отправить запрос с соответствующим почтальоном JSON продолжает загружаться ... в консоли Chrome отображается ошибка 404

это скрипт для запуска сервера localhost: 3000 / users app.js

//Define express instance
const app = express();

//Define port number 
const port = 3000 ;

//Static folder for downloaded files
app.use(express.static(path.join(__dirname + "/public")));

//Route users Directory Setup
app.use("/users",users);


//Start server
app.listen(port , () => {
    console.log("Just started your server on port : " + port +" (localhost:3000)");
})

users.js зарегистрируйтесь, проблема может быть здесь, не могу понять, обыскал каждый вопрос в StackOverflow

//Register
router.post('/register', (req, res, next) => {

  let newUser = new User ({
    name : req.body.name,
    email : req.body.email,
    username : req.body.username,
    password : req.body.password
  });

  User.addUser(newUser, (err, user) => {
    if(err) {
      res.json({success: false, msg: 'Failed to register user'});
    } else {
      res.json({success: true, msg: 'User registered'});
    }
  });

});

user.js

// User Schema
const UserSchema = mongoose.Schema ({
  name: {
    type: String
  },
  email: {
    type: String,
    required: true
  },
  username: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  }
});

const User = module.exports = mongoose.model('User', UserSchema);

module.exports.addUser = function(newUser, callback) {
  bcrypt.genSalt(10, (err, salt) => {
    bcrypt.hash(newUser.password, salt, (err, hash) => {
      if(err) throw err;
      newUser.password = hash;
      newUser.save(callback);
    });
  });
}

}

Запрос

post localhost: 3000 / пользователи / регистрация

{
    "name" : "houssam",
    "username" : "houssam11",
    "email" : "houssam.bb0101@gmail.com",
    "password" : "ssssssss1111"
}

1 Ответ

0 голосов
/ 05 сентября 2018

Если вы посмотрите на документацию, она показывает правильный способ создания и сохранения документа из вашей пользовательской модели. https://mongoosejs.com/docs/models.html. Не забудьте добавить return перед вашим разрешением.

//Register
router.post('/register', (req, res, next) => {

  let newUser = new User ({
    name : req.body.name,
    email : req.body.email,
    username : req.body.username,
    password : req.body.password
  });

  newUser.save((err, user) => {
    if(err) {
      return res.json({success: false, msg: 'Failed to register user'});
    } 

    return res.json({success: true, msg: 'User registered'});

  });

});

Теперь, если вы хотите хешировать пароль перед сохранением пользователя, вы можете использовать хук предварительного сохранения https://mongoosejs.com/docs/middleware.html.

// User Schema
const UserSchema = mongoose.Schema ({
  name: {
    type: String
  },
  email: {
    type: String,
    required: true
  },
  username: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  }
});

UserSchema.pre('save', function(next){
    var user = this;
    if (!user.isModified('password')) return next();

    bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt){
        if(err) return next(err);

        bcrypt.hash(user.password, salt, function(err, hash){
            if(err) return next(err);

            user.password = hash;
            next();
        });
    });
});

const User = module.exports = mongoose.model('User', UserSchema);

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