Javascript 如何从节点Js中的Url提取值

Javascript 如何从节点Js中的Url提取值,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我最近开始在nodeJs上编程 我使用Angular JS,资源调用API的 demoApp.factory('class', function ($resource) { return $resource('/class/:classId', { classId: '@_classId' }, { update: { method: 'PUT' } }); }); 在Controller中,我有delete方法为 // The class

我最近开始在nodeJs上编程

我使用Angular JS,资源调用API的

demoApp.factory('class', function ($resource) {
      return $resource('/class/:classId', { classId: '@_classId' }, {
        update: { method: 'PUT' }
      });
    });
在Controller中,我有delete方法为

   // 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
现在在node 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',

谢谢你的帮助

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


`“

这应该是一个get电话,对吗?您可以使用$http服务,方法为get。将你的app.use('/class')替换为app.get('/class',函数)。然后可以使用req.param('classId')检索数据。我认为应该行得通

尝试将app.use更新为app.use('/class/:classId'),然后尝试req.params.classId检查此项

Tldr


还要读取节点上的url。

console.log(req.hostname);提供本地主机。您试图获取哪个值?没有查询字符串参数,因此为什么query:null。我需要解析吗?我们对nodeJS有什么方法吗?谢谢,但这是删除调用,如果我更改为get,则没有意义。很抱歉,我错过了它。尝试将app.use更新为app.use('/class/:classId'),然后尝试req.params.classId.No,如果我这样更改,将影响调用CURD API的整个设计。正如我所说,它没有查询或参数,请求为localhost:3000/class/1。所以查询或参数函数不起作用;我能提取1。
var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;