[javascript] Express에서 URL 매개 변수를 얻는 방법은 무엇입니까?

tagid내 URL에서 값을 얻는 데 문제가 localhost:8888/p?tagid=1234있습니다.

컨트롤러 코드를 수정하도록 도와주세요. 나는 tagid가치 를 얻을 수 없습니다 .

내 코드는 다음과 같습니다.

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'
  });
};



답변

익스프레스 4.x

URL 매개 변수의 값을 얻으려면 req.params를 사용 하십시오.

app.get('/p/:tagId', function(req, res) {
  res.send("tagId is set to " + req.params.tagId);
});

// GET /p/5
// tagId is set to 5

쿼리 매개 변수를 얻으려면 req.query?tagId=5 를 사용 하십시오.

app.get('/p', function(req, res) {
  res.send("tagId is set to " + req.query.tagId);
});

// GET /p?tagId=5
// tagId is set to 5

Express 3.x

URL 매개 변수

app.get('/p/:tagId', function(req, res) {
  res.send("tagId is set to " + req.param("tagId"));
});

// GET /p/5
// tagId is set to 5

쿼리 매개 변수

app.get('/p', function(req, res) {
  res.send("tagId is set to " + req.query("tagId"));
});

// GET /p?tagId=5
// tagId is set to 5


답변

당신은 같은 것을 할 수 있습니다 req.param('tagId')


답변

URL에서 검색어 매개 변수 값을 가져 오려면 아래 코드를 따르십시오.

//url.localhost:8888/p?tagid=1234
req.query.tagid
OR
req.param.tagid

Express param 기능을 사용하여 URL 매개 변수를 가져 오려면

특정 매개 변수를 얻는 Express param 기능. 이것은 미들웨어로 간주되며 경로가 호출되기 전에 실행됩니다.

이것은 아이템에 대한 검증이나 중요한 정보를 얻는 데 사용될 수 있습니다.

이에 대한 예는 다음과 같습니다.

// parameter middleware that will run before the next routes
app.param('tagid', function(req, res, next, tagid) {

// check if the tagid exists
// do some validations
// add something to the tagid
var modified = tagid+ '123';

// save name to the request
req.tagid= modified;

next();
});

// http://localhost:8080/api/tags/98
app.get('/api/tags/:tagid', function(req, res) {
// the tagid was found and is available in req.tagid
res.send('New tag id ' + req.tagid+ '!');
});


답변

경로가 다음과 같은 경우 작동합니다. localhost:8888/p?tagid=1234

var tagId = req.query.tagid;
console.log(tagId); // outputs: 1234
console.log(req.query.tagid); // outputs: 1234

그렇지 않으면 경로가 다음과 같은 경우 다음 코드를 사용하십시오. localhost:8888/p/1234

var tagId = req.params.tagid;
console.log(tagId); // outputs: 1234
console.log(req.params.tagid); // outputs: 1234


답변