表达式中的动态路由不从$ http GET调用回调

时间:2015-06-12 23:29:13

标签: javascript angularjs express

我有角度的工厂,有以下获取请求

  dataFactory.checkDb = function(artist){
     return $http({
        method: 'GET',
        url: '/artist/' + artist
    })
  };

网址的后半部分是可变的。因此,我为get请求编写了一个表达式处理程序,如下所示:

app.get('/artist/*',dbhelpers.checkDbArtist)

由于某些原因dbhelpers.checkDbArtist未被调用,我在Chrome开发者工具中收到以下错误:

GET http://localhost:3000/artist/Drake 404 (Not Found)

在这种情况下,德雷克是变量艺术家的名字。

我之前有以下代码,效果很好:

factory.js

  dataFactory.checkDb = function(artist){
     return $http({
        method: 'GET',
        url: '/artistsearch',
        params: {artistname: artist}
    })
  };

express.js

app.get('/artistsearch',dbhelpers.checkDbArtist)


app.post('/artistsearch', dbhelpers.insertDb)

当我输入www.localhost.com/#/artist/Drake时,这不起作用,因为我得到一个没有数据的空视图,因为没有调用dbhelpers.checkDbArtist。我想要做的是让我的应用程序访问www.localhost.com/#/artist/Drake并提出适当的获取请求。我想在网址中传递我的数据而不是params: {artistname: artist}任何想法?

1 个答案:

答案 0 :(得分:0)

尝试更改

app.get('/artist/*',dbhelpers.checkDbArtist)

app.get('/artist/:artist',dbhelpers.checkDbArtist)

在你的dbhelpers.checkDbArtist中,你可以像这样获得这个

req.params.artist