Как мне передать параметры в express.js маршрутизация на стороне сервера для MEAN.js посылка.

#javascript #angularjs #node.js #express #angular-ui-router

#javascript #angularjs #node.js #выразить #angular-ui-router

Вопрос:

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

В настоящее время у меня есть два модуля crud. Модуль проекта и модуль приложения. Пользователи должны иметь возможность обращаться к проектам. В рамках определенного проекта я должен иметь возможность просматривать все приложения, а затем принимать / отклонять их.

Я добавил пользовательский метод в angular $resource

 function ProjectApplicationsService($resource) {
    return $resource('api/projects/:projectId/applications', { projectId: '@_id' }, {
      accept: {
        method: 'PUT'
      },
      reject: {
        method: 'PUT'
      }
    });

  }
  

Как только я нажимаю кнопку, соответствующую определенному приложению, она запускает эту функцию и передает идентификатор приложения в качестве параметра.

 function acceptApp(applicationID){
      vm.application._id = vm.project._id;
      vm.application.app_id = applicationID;
      vm.application.$accept(successCallback, errorCallback);
      function successCallback(res) {
          console.log("success");
      }

      function errorCallback(res) {
        vm.error = res.data.message;
        console.log(vm.error);
      }
    }
  

Это должно вызвать вызов API для express, и вот маршрутизация для этого

   app.route('/api/projects/:projectId/applications')
    .get(users.requiresLogin, projects.hasAuthorization, projects.getApplications)
    .put(users.requiresLogin, projects.hasAuthorization, projects.updateApplication)
    .delete(users.requiresLogin, projects.hasAuthorization, projects.deleteApplication);
  

По сути, я хочу в конечном итоге вызвать updateApplication, но как мне получить идентификатор приложения в этом методе?

Ответ №1:

Предполагая, что вы собираетесь загрузить что-то на сервер, что вызовет ваш put маршрут, который содержит функцию, которую вы хотите вызвать.

Вам нужно структурировать свои дескрипторы следующим образом:

 function(request,response,next){ // usually abbreviated to `req,res`
    handleData();
    next(); // move onto the next function;
}
  

Параметры легко запомнить, запрос предшествует ответу, а затем next — вам нужен next только тогда, когда вы хотите перейти к другому обработчику.

Если вы не вызовете next() маршрут, он остановится — вы, вероятно, захотите вызвать next после успешной авторизации.

данные хранятся в теле запроса, поэтому вы можете получить к ним доступ с помощью request.body

Примечание: не забудьте ответить своему пользователю — что-то вроде res.send("success") , или у них истечет время ожидания

Комментарии:

1. Чувак, я буквально только что понял это. Запрос. тело было ключом. Спасибо!!