Jim*_*m M 3 query-parameters node.js express
我试图使用Node.js中的Express访问查询参数.出于某种原因,req.params
不断出现作为一个空对象.这是我的代码server.js
:
const express = require('express');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
const https = require('https');
//custom packages ..
//const config = require('./config');
const routes = require('./routes/routes');
const port = process.env.port || 3000;
var app = express();
//templating engine Handlebars
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
//connect public route
app.use(express.static(__dirname + '/public/'));
app.use(bodyParser.json());
//connect routes
app.use('/', routes);
app.listen(port, () => {
console.log( 'Server is up and running on ' + port );
});
Run Code Online (Sandbox Code Playgroud)
这是我的路线文件:
//updated
const routes = require('express').Router();
routes.get('/', (req, res) => {
res.render('home');
});
routes.post('/scan', (req, res) => {
res.status(200);
res.send("hello");
});
routes.get('/scanned', (req, res) => {
const orderID = req.params;
console.log( req );
res.render('home', {
orderID
});
});
module.exports = routes;
Run Code Online (Sandbox Code Playgroud)
当服务器启动并运行时,我正在导航到http://localhost:3000/scanned?orderid=234
.我当前在该routes.js
文件中的控制台日志显示一个空主体(不识别orderid
URL中的参数).
orderid
在请求中是查询参数.它需要通过req.query
对象访问而不是req.params
.使用以下代码访问orderid
请求中传递的内容:
const orderID = req.query.orderid
Run Code Online (Sandbox Code Playgroud)
现在您应该能够234
在请求URL中传递值.
或者尝试用以下代码替换路线代码/scanned
:
routes.get('/scanned', (req, res) => {
const orderID = req.query.orderid
console.log( orderID ); // Outputs 234 for the sample request shared in question.
res.render('home', {
orderID
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14331 次 |
最近记录: |