【问题标题】:Node express.Router().route(/verb/:optionalParameter)?节点 express.Router().route(/verb/:optionalParameter)?
【发布时间】:2015-12-11 20:35:15
【问题描述】:

我使用节点expressRouter模块,它是route()方法。

我需要接受一个可选参数,这样:

var express = require('express');
var router = express.Router();

router.route('/verb/:optionalParameter').get(function(req, res, next) {
  // ...
}

如何指定optionalParameter
我确实尝试过:

router.route('/verb/:optionalParameter*?').get(function(req, res, next) {

curl -X GET -H "Accept: application/json" http://localhost:3000/verb/option1

工作得很好,但是

curl -X GET -H "Accept: application/json" http://localhost:3000/verb

吐出 404...

我确定我遗漏了一些明显的东西...... :-( 有什么线索吗?

【问题讨论】:

  • 您是否尝试删除路由 url 中的星号?像这样:router.route('/verb/:optionalPatrameter?').get(function(req, res, next) { 而不是:router.route('/verb/:optionalPatrameter*?').get(function(req, res, next) {
  • @Mayas: 这不是关于express Router 模块... ;-(
  • 刚刚试过:同样的 404... :-(
  • 你是对的。你为什么不这样做呢? var express = require('express'); var router = express.Router(); var app = express() app.route('/verb/:optionalParameter?').get(function(req, res, next) { console.log('hello world') }) 我刚试了一下,我也得到了 /verb/1 和 /verb/ 的“hello world”。

标签: node.js express routes


【解决方案1】:

响应它是 404,因为不存在路由 /verb,只有 /verb/:optionalParameter

对于作品,需要创建另一个路线:

var express = require('express');
var router = express.Router();

router.route('/verb/:optionalParameter').get(function(req, res, next) {
  // ...
}

// route localhost:3000/verb
router.route('/verb').get(function(req, res, next) {
  // ...
}

然后尝试:

curl -X GET -H "Accept: application/json" http://localhost:3000/verb

【讨论】:

  • 好吧,这不是一个真正的解决方案:在第一条路线中,它是一个 强制 参数... :-) 我在寻求一种写单 路线...如果不可能,我会听从您的建议...
  • 我相信这是不可能的,每条路线都会触发一个动作。对于另一个 URL,需要另一个路由(get、put、post、delete)。一个 URL 传递参数,而另一个不传递。
  • 好的。要走得更远,请查阅文档:expressjs.com/guide/routing.html
【解决方案2】:

试试这个:

var express = require('express')
var router = express.Router()
var app = express()
app.route('/verb/:optionalParameter?').get(function(req, res, next) { console.log('hello world') })

【讨论】:

猜你喜欢
  • 2015-12-11
  • 2019-01-20
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
相关资源
最近更新 更多