Express.js路由和正则表达式

时间:2015-07-31 11:45:33

标签: javascript regex json express routes

我有一个这样的对象:

geo: {
        description: 'Geolocalisation',
        properties: {
            latitude: {type: 'number'},
            longitude: {type: 'number'}
        }
    }

我想创建路由以检索嵌套对象,如:

  

host / geo.schema或host / geo.json

获取整个对象

  

host / geo / properties.schema或host / geo / properties.json

获取

properties: {
            latitude: {type: 'number'},
            longitude: {type: 'number'}
        }

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

var geo = {
    description: 'Geolocalisation',
    properties: {
        latitude: {type: 'number'},
        longitude: {type: 'number'}
    }
}

app.get('/host/geo.(schema|json)', function (req, res, next) {
  return res.status(200).json(geo);
});

app.get('/host/geo/properties.(schema|json)', function (req, res, next) {
  return res.status(200).json(geo.properties);
});

答案 1 :(得分:0)

我找到了一个正则表达式的解决方案。

app.get('\/[a-zA-Z]+(\/[a-zA-Z]*)+(\.json|\.schema)', function (req, res) {
        var url = req.url.toLowerCase();

        var elements = url.split('/');
});