我是一名初学者,正在从事由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")
之类的内容,否则他们会超时
我是一名优秀的程序员,十分优秀!