我应该如何从节点Js中的Url提取值

我最近开始在nodeJs上编程。

我正在使用Angular JS,资源来调用API的

demoApp.factory('class', function ($resource) { return $resource('/class/:classId', { classId: '@_classId' }, { update: { method: 'PUT' } }); }); 

而在控制器,我有删除方法为;

  // 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."); } ); }; 

使用浏览器,我validation呼叫去:

 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', 

任何帮助赞赏。

这应该是一个调用权吗? 您可以使用angular度$ http服务,方法为get。 用app.get('/ class',function)replaceapp.use('/ class')。 然后你可以使用req.param('classId')来检索数据。 我认为它应该工作。

尝试更新你的app.use到app.use('/ class /:classId'),然后尝试req.params.classId

尝试使用req.hostname,如下所示:

` http://主机/path '

检查这个答案 。

Tldr;

 var url = require('url'); var url_parts = url.parse(request.url, true); var query = url_parts.query; 

另请阅读节点url上的文档 。