Задать вопрос
Ответы пользователя по тегу Node.js
  • Как вызвать метод модели из контроллера NodeJS?

    @lemme
    Frontend
    this.getName = function() {}

    CurrencyModel.getName = function() {}

    CurrencyModel.prototype.getName = function() {}

    На выбор.=)
    Ответ написан
  • Как правильно сделать авторизацию?

    @lemme
    Frontend
    Вот банальная аутентификация.
    User - модель mongodb

    Сразу скажу, пароль нужно шифровать - например (bcrypt), соотвественно выбирать не по username и password, а по username, а потом уже сравнивать зашифрованный пароль с полученным из post запроса.
    Так как это пример аутентификации json, то вместо success: true, нужно слать токен, но это вам делать, примеров в гугле тонны.

    Насчет хочу все сделать сам, не нужно так говорить, а потом спрашивать банальные вещи, которых - опять же, в гугле тонна.

    Хипстерский async/await, без него никуда:(
    app.post('/login', async (req, res, next) => {
    	const { username, password } = req.body;
      
      try {
        const user = await User.find({ username, password }).exec();
        
        if (!user) {
        	return res.status(401).json({ message: 'Invalid username or password'});
        }
        return res.send({ success: true });
      } catch(e) {
      	next(e);
      }
    });


    На клиенте все просто:

    1) Шлете ajax запрос (username, password)
    2) получаете статус (401/200)
    3) парсите json
    4) если 401, то выводите ошибку
    5) если 200, то редиректите через window.location

    p.s написано прямо тут, поэтому за работоспособность не ручаюсь, но вроде - должно все работать.

    В догонку, чтоб не спрашивать подобные вопросы, посмотрите скринкаст Ильи Кантора по NodeJS
    learn.javascript.ru/screencast/nodejs
    Ответ написан
    Комментировать
  • Как работают коллбеки?

    @lemme
    Frontend
    Мб на таком примере будет проще.

    // асинхронная функция, которое аргументом передаем callback
    function asyncFunction(callback) {
    	setTimeout(function() {
      	callback('Hello, World!'); // вызываем callback и передаем ему ответ 'Hello, World'
      }, 2000);
    }
    
    // Вызываем асинхронную функцию, но чтоб получить ответ, нужно передать callback
    // Т.е передаем другую функцию
    asyncFunction(function(response) {
    	alert(response); // выводим ответ.
    });
    Ответ написан
    1 комментарий