如何将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")
,否则他们会超时