javascript - 如何将参数传递给 MEAN.js 包的express.js 服务器端路由。

标签 javascript angularjs node.js express 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'
      }
    });

  }

一旦我点击某个应用对应的按钮,就会触发这个函数,并传入应用ID作为参数。

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);
      }
    }

这应该对express进行API调用,这是该路由

  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,但是如何在此方法中获取应用程序 ID?

最佳答案

假设您要将某些内容上传到服务器,这将触发您的 put 路由 - 其中包含您要调用的函数。

您需要像这样构造句柄:

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

这些参数很容易记住,请求先于响应,然后是下一个 - 仅当您想要移动到另一个处理程序时才需要下一个。

如果您不调用next(),路线将停止 - 一旦授权成功,您可能需要调用 next。

数据保存在请求正文中,因此您可以使用 request.body 访问它

注意:记得回复您的用户 - 使用诸如 res.send("success") 之类的内容,否则他们会超时

关于javascript - 如何将参数传递给 MEAN.js 包的express.js 服务器端路由。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012156/

相关文章:

javascript - 什么时候我们应该使用 file.write(...) 而不是 file.createWriteStream(...) ?

javascript - 遍历表并将值存储为键/值对

javascript - AngularJs 过滤单个数组元素并输出一个属性

angularjs - ios 上的 Angular/ ionic iframe 问题

javascript - 在 AngularJS 指令中使用 SelectBoxIt

node.js - WIndows 10 上 Msysgit 上的 Node cli

javascript - 拒绝在框架中显示 'http://127.0.0.1:8000/files/xxx.pdf',因为它在 Node Express API 中将 'X-Frame-Options' 设置为 'sameorigin'

javascript - 随机背景颜色 : is it possible for colour to be different for every click?

javascript - 在 DAT.GUI 中显示具有起始值的 float

javascript - 如何创建在 y 轴上具有唯一计数、在 x 轴上具有类别的基本条形图?