我应该如何从节点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上的文档 。