我最近开始在nodeJs上编程。
我正在使用Angular JS,资源将API调用为
demoApp.factory('class', function ($resource) {
return $resource('/class/:classId', { classId: '@_classId' }, {
update: { method: 'PUT' }
});
});
在Controller中,我有删除方法;
// The class object, e {classId: 1, className: "Pro"}
$scope.deleteClass = function (class) {
var deleteObj = new Class();
deleteObj.classId = class.classId;
deleteObj.$delete({classId : deleteObj.classId}, function() {
growl.success("Class deleted successfully.");
$location.path('/');
},function () {
growl.error("Error while deleting Class.");
}
);
};
使用浏览器,我验证了呼叫:
http://localhost:3000/class/1
现在在节点Js中,我该如何从Url中提取值,
在server.js
中app.use('/class', classController.getApi);
在classController.js
中exports.getApi = function(req, resp){
switch(req.method) {
case 'DELETE':
if (req) {
// how to extract 1 from url.
}
else {
httpMsgs.show404(req, resp);
}
break;
我试过了,
console.log(req.params);
console.log(req.query);
但没有运气。
我正在看
console.log(req._parsedUrl);
query: null,
pathname: '/class/1',
path: '/class/1',
任何帮助表示赞赏。
答案 0 :(得分:1)
这应该是一个来电权吗?您可以使用angular $ http服务,方法为get。用app.get('/ class',function)替换你的app.use('/ class')。然后,您可以使用req.param('classId')来检索数据。我认为它应该有用。
尝试将app.use更新为app.use('/ class /:classId'),然后尝试req.params.classId
答案 1 :(得分:0)
尝试使用req.hostname,如下所示:
答案 2 :(得分:0)
选中source code。
Tldr;
var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
另请阅读节点网址上的answer。