如何通过角度服务器路由发送 Ajax 参数

How to Send Ajax Parameters through angular server route?

本文关键字:Ajax 参数 路由 服务器 何通过      更新时间:2023-09-26

我正在使用MeanJs Stack

我需要调用以下 API:

http://localhost/api/movies/movieId/Action?page=1&perPage=10

如何在服务器路由中发送(page='+:id+page='+pageNum+'&perPage='+perPage)参数

我正在发送以下方式,这没有帮助

电影.服务器.路由.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 文档,查询字符串不是路由定义的一部分。

因此,您的路由可以这样改进(除了有几个语法错误):

app.route('/api/movies/:id/Action')
        .get(movies.readAllMovies);

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

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

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

  1. 您需要创建一个服务或工厂来处理对 api 终端节点的请求
  2. 查看以下有关修改 api 终端节点的说明,以便它仅将响应通过管道返回到服务
  3. 将服务包含在您的角度模块中,并在您的控制器/任何内容中按需使用它

您应该使用请求模块和参数,在我看来,这是迄今为止在 get 请求中检索查询参数的最简单方法,流式传输响应只是通过管道传输 url 的结果。使用请求 https://www.npmjs.com/package/request 这非常简单

首先,让我们修改终端节点并包含请求模块

第一npm install request --save

然后在您的应用中包含请求var request = require('request');

req.query.--queryparam 的名称

req.params.--param 的名称

然后,您的终端节点就像

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 请求直接命中此端点,它应该可以工作

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