如何将parameter passing给MEAN.js包的express.js服务器端路由。

我是一个初学者,在一个由mean.js构build的项目上工作。 我仍然试图弄清楚整个项目结构是如何工作的,而且我有点卡住了。

目前,我有两个crud模块。 一个项目模块和一个应用程序模块。 用户应该能够应用于项目。 在某个项目下,我应该可以查看所有的应用程序,然后接受/拒绝它们。

我在angular度$资源上添加了一个自定义方法

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

一旦我点击某个应用程序对应的button,就会触发该函数,并将应用程序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); } } 

这应该使一个API调用来expression,这里是路由

  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。

你需要像这样构造你的手柄:

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

参数很容易记住,请求在响应之前,然后下一个 – 你只需要下一个,当你想要移动到另一个处理程序。

如果你没有调用next()那么路由将停止 – 一旦授权成功,您可能会想要调用next。

数据保存在请求体中,所以你可以使用request.body来访问它

注意:记得回复你的用户 – 像res.send("success") ,否则他们会超时