Javascript 如何通过angular服务器路由发送Ajax参数?

Javascript 如何通过angular服务器路由发送Ajax参数?,javascript,angularjs,ajax,meanjs,Javascript,Angularjs,Ajax,Meanjs,我正在使用MeanJs堆栈 我需要调用以下Api: http://localhost/api/movies/movieId/Action?page=1&perPage=10 如何在服务器路由中发送参数(page='+:id+page='+pageNum+'&perPage='+perPage) 我发送以下方式,这是没有帮助的 movies.server.routes.js app.route('/api/movies/:id/Action?page='+:id+'page'=+page

我正在使用MeanJs堆栈

我需要调用以下Api:

http://localhost/api/movies/movieId/Action?page=1&perPage=10
如何在服务器路由中发送参数
(page='+:id+page='+pageNum+'&perPage='+perPage)

我发送以下方式,这是没有帮助的

movies.server.routes.js

app.route('/api/movies/:id/Action?page='+:id+'page'=+pageNum+'&perPage'=+perPage')//But it is not recognising by rout and parameters are not sending 
            .get(movies.readAllMovies);//triggers and call the api .
你们能给我一些提示吗? 对不起,水平滚动的家伙:-)

谢谢。

根据ExpressJS,查询字符串不是路由定义的一部分

因此,可以对您的路由进行优化(除了有几个语法错误外),如下所示:

然后,在处理程序
movies.readAllMovies
中,您可以使用
req.query
访问查询字符串。也就是说,
page
查询字符串可以作为
req.query.page
等进行重试

注意由于expressJS使用正则表达式来匹配路由,因此
将作为正则表达式术语中的量词。

根据expressJS,查询字符串不是路由定义的一部分

因此,可以对您的路由进行优化(除了有几个语法错误外),如下所示:

然后,在处理程序
movies.readAllMovies
中,您可以使用
req.query
访问查询字符串。也就是说,
page
查询字符串可以作为
req.query.page
等进行重试


注意因为expressJS使用正则表达式来匹配路由,所以
将用作正则表达式术语中的量词。

首先,在我看来,您应该通过一个服务来返回结果,并通过节点服务器上的一个RESTful端点来执行查询。我觉得您的上述方法在概念上可以使用一个认真的重新访问,所以下面是我将如何处理它

  • 您需要创建一个服务或工厂来处理对api端点的请求
  • 请参阅下面的说明,以修改api端点,使其仅通过管道将响应传回服务
  • 将服务包括在您的angular模块中,并在控制器/任何设备中按需使用它
  • 您应该使用请求模块和参数,在我看来,这是在get请求中检索查询参数的最简单方法,流式处理响应只是通过管道传递url的结果。这是一个超级简单的使用请求

    首先,让我们修改您的端点并包括请求模块

    第一个npm安装请求—保存

    然后在你的应用程序中包含request
    var request=require('request')

    请求查询。--查询参数的名称

    请求参数。--参数名称

    那么您的端点就像

    app.get('/api/movies/:movieID/:Category', function(req, res){
    var url='http://localhost/api/movies/' + req.params.movieID + '/' + req.params.Category +'?page=' + req.query.page + '&perPage=' + + req.query.page;
    request(url).pipe(res);
    
    }))

    **您应该能够通过get请求直接命中该端点,并且它应该可以工作


    然后创建一个服务来使用结果并将其提供给控制器

    首先,在我看来,您应该通过一个服务来返回结果,并通过节点服务器上的一个RESTful端点来执行查询。我觉得您的上述方法在概念上可以使用一个认真的重新访问,所以下面是我将如何处理它

  • 您需要创建一个服务或工厂来处理对api端点的请求
  • 请参阅下面的说明,以修改api端点,使其仅通过管道将响应传回服务
  • 将服务包括在您的angular模块中,并在控制器/任何设备中按需使用它
  • 您应该使用请求模块和参数,在我看来,这是在get请求中检索查询参数的最简单方法,流式处理响应只是通过管道传递url的结果。这是一个超级简单的使用请求

    首先,让我们修改您的端点并包括请求模块

    第一个npm安装请求—保存

    然后在你的应用程序中包含request
    var request=require('request')

    请求查询。--查询参数的名称

    请求参数。--参数名称

    那么您的端点就像

    app.get('/api/movies/:movieID/:Category', function(req, res){
    var url='http://localhost/api/movies/' + req.params.movieID + '/' + req.params.Category +'?page=' + req.query.page + '&perPage=' + + req.query.page;
    request(url).pipe(res);
    
    }))

    **您应该能够通过get请求直接命中该端点,并且它应该可以工作


    然后创建一个服务来使用结果并将其提供给控制器

    我不明白你在参数中写了什么,但在我看来你只是想做:
    ('/api/movies/'+id+'/Action?page='+pageNum+'&perPage='+perPage)
    这是我的错,抱歉,刚刚更新了这篇文章。。我也用同样的方法不工作。。这正是它只发送api而不发送ajax参数的问题。我建议对路由使用
    '/api/movies/:id/Action'
    ,只使用request.query(在get方法中)获取查询字符串。例如:
    app.route('/api/movies/:id/Action').get(function(req,res){pageNum=req.query.page;})
    EDIT:显然,Express文档同意了这一点——实际上,我在发布之前已经尝试过所有这些组合。api长时间处于挂起状态并失败。不幸的是没有工作-我不明白你在你的参数中写了什么,但在我看来你会这么做:
    ('/api/movies/'+id+'/Action?page='+pageNum+'&perPage='+perPage)
    这是我的错,很抱歉刚刚更新了这篇文章。。我也用同样的方法不工作。。这正是它只发送api而不发送ajax参数的问题。我建议对路由使用
    '/api/movies/:id/Action'
    ,只使用request.query(在get方法中)获取查询字符串。例如:
    app.route('/api/movies/:id/Action').get(function(req,res){pageNum=req.query.page;})
    EDIT:显然,Express文档同意了这一点——实际上,我在发布之前已经尝试过所有这些组合。api正在等待sta