javascript - 如何在 Express 中获取 URL 参数?

标签 javascript node.js express url-parameters query-parameters

我在从我的网址获取 tagid 的值时遇到问题:localhost:8888/p?tagid=1234

帮助我纠正我的 Controller 代码。我无法获取 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'
  });
};

最佳答案

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

如果要获取查询参数?tagId=5,则使用req.query

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

网址参数

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

关于javascript - 如何在 Express 中获取 URL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089582/

相关文章:

javascript - 使用 xpath 和 nightwatch.js 单击动态文本

javascript - ajax 和 javascript 的区别

javascript - 过滤嵌套数组并与父对象一起更新数组 - JS

node.js - PM2 在多个实例中未启动 Node.js 应用程序

node.js - 如何使用 Jest 多次运行相同的测试

javascript - 如何在 moment.js 中比较不同时区的日期

javascript - Youtube 数据 API 视频嵌入限制

angularjs - 如何在不使用 yeoman 的情况下使用 Node.js 在 Heroku 中托管 AngularJS 应用程序?

node.js - 嵌套 Promise 不会将错误传播到 Node.js 中的父 Promise?

javascript - 在 Express.js 中使特定目录可浏览