gpt4 book ai didi

javascript - MEANJS 获取 URL 参数

转载 作者:行者123 更新时间:2023-11-28 19:28:18 27 4
gpt4 key购买 nike

我正在 localhost: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/#!/admin/test?foo=bar。我已经在代码中尝试了上面提到的三种尝试(注释掉其他尝试,以便我可以一一尝试),但似乎无法获取变量。

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

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

您的问题主要取决于您在客户端发送请求的方式。

顺便说一句,在您的快速 route ,您可以获得这样的 foo 值:Pre-routing with querystrings with Express in Node JS

如果您想获取查询字符串并在请求中使用它,请参阅:How can I get query string values in JavaScript?

关于javascript - MEANJS 获取 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com