我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
当前回答
对于Express.js,您需要执行req.params:
app.get('/user/:id', function(req, res) {
res.send('user' + req.params.id);
});
其他回答
在Express中,这已经为您完成了,您可以简单地使用req.query:
var id = req.query.id; // $_GET["id"]
否则,在NodeJS中,您可以访问req.url和内置的url模块来url.parse它:
var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
2014年5月4日更新
此处保留旧答案:https://gist.github.com/stefek99/b10ed037d2a4a323d638
1) 安装express:npm安装express
应用程序.js
var express = require('express');
var app = express();
app.get('/endpoint', function(request, response) {
var id = request.query.id;
response.end("I have received the ID: " + id);
});
app.listen(3000);
console.log("node express app started at http://localhost:3000");
2) 运行app:node app.js
3) 在浏览器中访问:http://localhost:3000/endpoint?id=something
我收到了ID:某物
(自从我的回答以来,很多事情都发生了变化,我相信这是值得的,让事情保持最新)
因此,有两种方式可以接收此“id”:1) 使用params:代码params看起来像:假设我们有一个阵列,
const courses = [{
id: 1,
name: 'Mathematics'
},
{
id: 2,
name: 'History'
}
];
然后,对于params,我们可以执行以下操作:
app.get('/api/posts/:id',(req,res)=>{
const course = courses.find(o=>o.id == (req.params.id))
res.send(course);
});
2) 另一种方法是使用查询参数。因此url看起来像“…..\api\xyz?id=1”,其中“?id=1“是查询部分。在这种情况下,我们可以执行以下操作:
app.get('/api/posts',(req,res)=>{
const course = courses.find(o=>o.id == (req.query.id))
res.send(course);
});
表达特定的简单获取方法
查询字符串(在?之后),例如https://...?user=abc&id=123var express=要求('express');var app=express();app.get('/',函数(req,res){res.send('id:'+req.query.id);});app.listen(3000);查询参数,如https://.../get/users/:idvar express=要求('express');var app=express();app.get('/get/users/:id',函数(req,res){res.send('id:'+req.params.id);});app.listen(3000);
我使用的是MEANJS 0.6.0express@4.16,很好
客户:
控制器:
var input = { keyword: vm.keyword };
ProductAPi.getOrder(input)
服务:
this.getOrder = function (input) {return $http.get('/api/order', { params: input });};
服务器
路线
app.route('/api/order').get(products.order);
控制器
exports.order = function (req, res) {
var keyword = req.query.keyword
...