Как я пишу фронтэнд «Аякс»

голоса
0

В основном, я работаю над проектом на сайте брака. На странице, я создал новый раздел «недавно добавленным профиль» .Я написал код в интерфейсе, но в интерфейсе, что я должен написать для вызова кода серверной. Я использовал технику, но это не работает.

Код, который я написал в контроллере

module.exports.recent = function(req, res) {
    User.find({}).sort('-created').limit(5).exec(function(err, data){
      if (err) 
      {
        return res.status(400).json({
           message: errorHandler.getErrorMessage(err)
         })
      }
      res.json(req.profile,{
        user: req.user || null,
        request: req,
        users: data
      });

    });

};

Код, который я написал в маршруте

app.route('/recent').get(users.recent);
Задан 02/09/2018 в 05:17
источник пользователем
На других языках...                            


1 ответов

голоса
0

В целом ответить на ваш вопрос о том, «как я называю код бэкэнда из интерфейса? - Вы не делаете. Вы делаете запрос на маршрут , который проходит ваш код, а затем отправить обратно (вероятно , с res.json) в ответ. Там нет никакого способа прямого вызова кода, так что вам нужно сделать запрос AJAX (как вы определили).

Вы можете использовать несколько вещей. Самый простой, если вы на современный браузер, является функцией fetch. fetchявляется низкоуровневый API для выполнения AJAX звонки из браузера, и приходит встроенный в большинство современных браузеров.

fetch('/recent')
  .then(res => res.json())
  .then(myResult => { /* do what you want with the result here */ })

Вы можете узнать больше о fetchот MDN: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

Из - за fetchдовольно низкого уровня, существуют различные обертки , написанные над ним , чтобы сделать жизнь проще. Я предпочитаю axios, которые вы можете прочитать больше о в https://github.com/axios/axios . Следующий код является эквивалентом с axios:

axios.get('/recent')
  .then(res => res.data)
  .then(myResult => { /* do what you want with the result here */ })

axiosдействительно вступает в свои права, когда вы выполняете более сложных запросов. Он поддерживает связку UMD с помощью unpkg- просто уронить <script src="https://unpkg.com/axios/dist/axios.min.js"></script>на вашей HTML страницы, и вы будете иметь доступ к axiosглобально на объекте окна.

Ответил 02/09/2018 в 08:45
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more