Javascript 如何从节点Js中的Url提取值
我最近开始在nodeJs上编程 我使用Angular JS,资源调用API的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
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;