Node.js Express выполнить внутри app.post () - PullRequest
0 голосов
/ 26 марта 2020

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

Используя следующий код, я получаю список клиентов:

app.get("/customers", customers.findAll);

Я хотел добавить аутентификацию. Но теперь я не знаю, как выполнить «Customers.findAll» и получить значение как JSON.

app.get("/customers", verifyToken, (req, res) => {
    jwt.verify(req.token, 'justAtest, (err, authData) => {
    if (err) {
     res.sendStatus(403);
    } else { 
      // execute customers.findAll
    }
   }); 
  });

Клиенты интегрируются через требование

const customers = require("../controllers/customer.controller.js");

Содержимое следующие:

exports.findAll = (req, res) => {
  Customer.getAll((err, data) => {
    if (err)
      res.status(500).send({
        message:
          err.message || "Some error occurred while retrieving customers."
      });
    else res.send(data);
  });
};

У вас есть идеи?

Заранее спасибо.

Греттингс

Рок

1 Ответ

0 голосов
/ 26 марта 2020

Вы достигаете этого, используя нечто, называемое «промежуточное программное обеспечение». Изучите его, так как это очень важно.

В основном:

app.get("/customers", verifyToken,customers.findAll);

Токен проверки - это функция, которая имеет 3 параметра: req, res и 3-й, называемый «следующий». Таким образом, ваша функция проверки токена будет выглядеть примерно так:

(req, res,next) => {
    jwt.verify(req.token, 'justAtest, (err, authData) => {
    if (err) {
     res.sendStatus(403);
    } else { 
      next();
    }
   }); 
  }

Я взял ее из вашего фрагмента. В основном, если вы хотите перейти к customeeers.finalAll, просто вызовите «next», и он перейдет к следующей функции: D.

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