问题描述
在做一个小爬虫,先爬了一个列表,再根据每一个href去爬文章
我在href里将新的url参数传递
<ion-item ng-repeat='item in news' class='item item-icon-left'> <a href='https://www.6hehe.com/wenda/14917.html#/app/newslist/{{item.href}}' >
在ionic的路由里是这样写的:
url: '/newslist/:url',
我希望将url这个参数传给node写的server,ionic的controller是这样传参数的
.controller(’SingleNewsCtrl’, function ($scope,$stateParams,$http) { $http.get(’http://localhost:3000/newslist/’ + $stateParams.url).success(function(data){ $scope.title = data.title; $scope.date = data.date;
在server里,希望接受url参数,再去爬新的页面
app.get(’/newslist/:url’, function (req, res) {var url = req.params.url;superagent.get(url) .end(function (err, data) {if (err) console.log(err);
但是url总是接受不到,不知道angular里的传参哪里写错了,希望大家指点下~~
问题解答
回答1:我觉得你的ionic的路由声明以及node的处理都不太对,ionic用的是ui-router,如果你的参数是一个路径,你直接使用:
javascripturl: '/newslist/:url',
是不对的,定义path类型的路由应该如下:
javascripturl: '/newslist/{path:.*}'
或者:
javascripturl: '/newslist/*path'
同理你在node的router中,接受请求的声明应该也不正确,通常:name不会支持url类型参数,需要你查看你使用的router组件文档,自行解决了。