Javascript MEANJS获取URL参数

Javascript MEANJS获取URL参数,javascript,node.js,express,mean-stack,meanjs,Javascript,Node.js,Express,Mean Stack,Meanjs,我正在本地主机上运行我的应用程序:3000/#!/,并试图获取用于Express的URL参数,但运气不佳。我创建了一个新的服务器路由文件,其中包含以下内容: admin.server.routes.js 'use strict'; module.exports = function(app) { // Admin Routes var admin = require('../../app/controllers/admin.server.controller'); /

我正在本地主机上运行我的应用程序:3000/#!/,并试图获取用于Express的URL参数,但运气不佳。我创建了一个新的服务器路由文件,其中包含以下内容:

admin.server.routes.js

'use strict';

module.exports = function(app) {
    // Admin Routes
    var admin = require('../../app/controllers/admin.server.controller');

    // Both of these routes work fine.
    app.route('/admin/test').
        get(admin.populate).
        put(admin.update);

    // First attempt, didn't work.
    app.route('/admin/test').get(admin.doSomething);

    // Second attempt, didn't work.
    app.param('foo', admin.doSomething);

    // Third attempt, didn't work.
    app.param('foo', function(req, res) {
        console.log('Found foo!');
        return res.status(400).send();
    });

};
在我的管理页面上,我的admin.client.controller.js在加载时发送$http.get请求以填充数据。我有一个带有按钮的表单,它发送一个$http.put请求来更新填充的值。这两个请求都很有效

问题是当我尝试使用带有foo参数的URL访问我的应用程序时,例如:
http://localhost:3000/#!/管理员/测试?foo=bar
。在我的代码中,我已经尝试了上面提到的三次尝试中的每一次(注释掉其他尝试,以便我可以一个接一个地尝试),但似乎无法获得变量

在我的admin.server.controller文件中,除了填充和更新功能外,我只需要以下代码:

管理服务器控制器

exports.doSomething = function(req, res) {
    console.log('Server - found foo!');
};
使用这些努力,我实际上都没有能够证明我已经成功地“抓取”了foo供服务器端使用。我错过了什么?

在你的

http://localhost:3000/#!/admin/test?foo=bar
所有hashbang URL都由angularjs处理,此
/admin/test?foo=bar
不会被视为请求。要在请求中添加查询字符串,可以在angularjs资源中这样做:

 function ($resource) {
     $resource('/admin/test').query({foo: 'bar'});
 }
这将表示为这<代码>http://localhost:3000/admin/test?foo=bar

您的问题主要取决于您如何在客户端发送请求

顺便说一下,在您的快速路线中,您可以获得如下foo值:

如果您想获取查询字符串并在请求中使用它,请在

http://localhost:3000/#!/admin/test?foo=bar
所有hashbang URL都由angularjs处理,此
/admin/test?foo=bar
不会被视为请求。要在请求中添加查询字符串,可以在angularjs资源中这样做:

 function ($resource) {
     $resource('/admin/test').query({foo: 'bar'});
 }
这将表示为这<代码>http://localhost:3000/admin/test?foo=bar

您的问题主要取决于您如何在客户端发送请求

顺便说一下,在您的快速路线中,您可以获得如下foo值:

如果您想获取查询字符串并在请求中使用它,请在

http://localhost:3000/#!/admin/test?foo=bar
所有hashbang URL都由angularjs处理,此
/admin/test?foo=bar
不会被视为请求。要在请求中添加查询字符串,可以在angularjs资源中这样做:

 function ($resource) {
     $resource('/admin/test').query({foo: 'bar'});
 }
这将表示为这<代码>http://localhost:3000/admin/test?foo=bar

您的问题主要取决于您如何在客户端发送请求

顺便说一下,在您的快速路线中,您可以获得如下foo值:

如果您想获取查询字符串并在请求中使用它,请在

http://localhost:3000/#!/admin/test?foo=bar
所有hashbang URL都由angularjs处理,此
/admin/test?foo=bar
不会被视为请求。要在请求中添加查询字符串,可以在angularjs资源中这样做:

 function ($resource) {
     $resource('/admin/test').query({foo: 'bar'});
 }
这将表示为这<代码>http://localhost:3000/admin/test?foo=bar

您的问题主要取决于您如何在客户端发送请求

顺便说一下,在您的快速路线中,您可以获得如下foo值:


如果您想获取查询字符串并在请求中使用它,请参考以下内容:

URL的格式为
:/?35;

URL第一个#之后(包括第一个#)的任何部分都被视为片段。片段仅在客户端(在本例中为浏览器)上使用,通常不由服务器使用

从第3.5节

片段标识符作为客户端间接引用的主要形式,在信息检索系统中具有特殊的作用,允许作者专门识别现有资源中仅由资源所有者间接提供的方面。因此,片段标识符不用于URI的特定于方案的处理中;相反,在解引用之前,片段标识符与URI的其余部分分离,因此片段本身中的标识信息仅由用户代理解引用,而与URI方案无关

传统上,片段用于链接到同一页面上的锚。一个很好的例子是上面提供的RFC页面链接,它将使您跳转到第3.5节。在浏览器中自动分段

该节的URL为
https://tools.ietf.org/html/rfc3986#section-3.5
,因此片段是
第3.5节
。在页面的HTML中,
中有一个锚,表示该节包含:

<a class="selflink" name="section-3.5" href="#section-3.5">3.5</a>    

URL的格式为
://?#

URL第一个#之后(包括第一个#)的任何部分都被视为片段。片段仅在客户端(在本例中为浏览器)上使用,通常不由服务器使用

从第3.5节

片段标识符作为客户端间接引用的主要形式,在信息检索系统中具有特殊的作用,允许作者专门识别现有资源中仅由资源所有者间接提供的方面。因此,片段标识符不用于URI的特定于方案的处理中;相反,在解引用之前,片段标识符与URI的其余部分分离,因此片段本身中的标识信息仅由用户代理解引用,而与URI方案无关

传统上,片段用于链接到同一页面上的锚。一个很好的例子是上面提供的RFC页面链接,它将使您跳转到第3.5节。在浏览器中自动分段

该节的URL为
https://tools.ietf.org/html/rfc3986#section-3.5
,因此片段是
第3.5节
。在用于pa的HTML中