我正在使用这样的快速路由,我希望我的网址最初包含查询字符串。
char_length()
但是,无论我在/ us01之后添加什么查询字符串,我都不会打印查询字符串。例如,“localhost:9200 / us01?a = 1”req.query应该让我{a:1},对吗?这是常见的事吗?我在这里缺少什么?
我的app.js
app.get('/', function(req, res){
res.render('index', {});
});
app.get('/us01', function(req, res){
console.log('query: '+JSON.stringify(req.query));
res.render('templates/us01', {});
});
app.get('/benchmark', function(req, res){
res.render('templates/benchmark', {});
});
我的indexController.js有:
"use strict";
var express = require('express');
var expApp = express();
var http = require('http').Server(expApp);
var path = require('path');
var bodyParser = require('body-parser');
// all environments
expApp.set('port', process.env.PORT || 5555);
expApp.set('views', __dirname + '/views');
expApp.set('view engine', 'ejs');
expApp.use(bodyParser.urlencoded({ extended: true }));
expApp.use(bodyParser.json());
expApp.use(express.static(path.join(__dirname, 'public')));
//----------------ROUTES--------------------------//
require("./routes/route.js")(expApp);
http.listen(expApp.get('port'), function(){
console.log('Node-Server listening on port ' + expApp.get('port'));
});
答案 0 :(得分:2)
这个简单的代码:
const express = require('express');
const app = express();
app.get('/us01', function(req, res) {
console.log(req.query);
res.send("ok");
});
app.listen(80);
然后,http://localhost/us01?a=1
访问会在控制台中生成此输出:
{ a: '1' }
或者,如果我使用:
console.log('query: ' + JSON.stringify(req.query));
然后,我在控制台中看到了这一点:
query: {"a":"1"}
所以,显然你的代码还有其他错误。
"本地主机:9200 / US01一个= 1" req.query应该给我{a:1},对吗?
如果您显示的代码在localhost上的端口9200上运行,它应该为您query: {"a":"1"}
。
这是常见的吗?
没有。除了显示的代码之外的其他东西都被破坏了,因为只有那段代码没有任何问题。
我在这里缺少什么?
要检查的事项:
console.log(req.query)
,你会得到什么输出?