Saya menghadapi masalah untuk mendapatkan nilai tagid
dari URL saya: localhost:8888/p?tagid=1234
.
Bantu saya untuk memperbaiki kode pengontrol saya. Saya tidak bisa mendapatkan tagid
nilainya.
Kode saya adalah sebagai berikut:
app.js
:
var express = require('express'),
http = require('http'),
path = require('path');
var app = express();
var controller = require('./controller')({
app: app
});
// all environments
app.configure(function() {
app.set('port', process.env.PORT || 8888);
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(app.router);
app.get('/', function(req, res) {
res.render('index');
});
});
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
Controller/index.js
:
function controller(params) {
var app = params.app;
//var query_string = request.query.query_string;
app.get('/p?tagId=/', function(request, response) {
// userId is a parameter in the url request
response.writeHead(200); // return 200 HTTP OK status
response.end('You are looking for tagId' + request.route.query.tagId);
});
}
module.exports = controller;
routes/index.js
:
require('./controllers');
/*
* GET home page.
*/
exports.index = function(req, res) {
res.render('index', {
title: 'Express'
});
};
javascript
node.js
express
url-parameters
query-parameters
pengguna2834795
sumber
sumber
/p?tagid=1234
tagid disebut string kueri , bukan parameter URL. Parameter URL akan menjadi/p/:tagId
.Jawaban:
Express 4.x
Untuk mendapatkan nilai parameter URL, gunakan req.params
Jika Anda ingin mendapatkan parameter kueri
?tagId=5
, gunakan req.queryEkspresikan 3.x
Parameter URL
Parameter kueri
sumber
express-3.4.4
dan berfungsi dengan baik./p/5
jika Anda menggunakan solusi teratas, atau/p?tagId=5
jika Anda menggunakan solusi bawah.req.param()
sudah tidak digunakan lagi :Use either req.params, req.body or req.query, as applicable.
Untuk rute "parameter" bernama (misalnya/p/:tagId
) gunakanreq.params
. Untuk string kueri (misalnya/p?tagId=5
) gunakanreq.query
.Anda dapat melakukan sesuatu seperti
req.param('tagId')
sumber
req.query
danreq.params
merupakan hal yang sangat berbeda, penggantireq.param('x')
adalahreq.params.x
tidak req.query.Jika Anda ingin mengambil nilai parameter kueri di URL, ikuti potongan kode di bawah ini
Jika Anda ingin mengambil parameter URL menggunakan fungsi param Express
Mengungkapkan fungsi param untuk mengambil parameter tertentu. Ini dianggap middleware dan akan berjalan sebelum rute dipanggil.
Ini dapat digunakan untuk validasi atau mengambil informasi penting tentang item.
Contoh untuk ini adalah:
sumber
Ini akan berfungsi jika rute Anda terlihat seperti ini:
localhost:8888/p?tagid=1234
Kalau tidak, gunakan kode berikut jika rute Anda terlihat seperti ini:
localhost:8888/p/1234
sumber
/p/:tagid=1234