Как передать параметр запроса из URL в функцию, которая возвращает объект с тем же именем в JavaScript? - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу передать параметр запроса из экспресс-запроса маршрутизатора в функцию, которая будет возвращать объект с тем же именем, однако функция возвращает имя параметра.

Я посмотрел на тип параметра функции и его тип 'объект', однако req.params возвращает строку типа.Как мне обойти это?

router.get('/about/:place', (req, res) => {

// the object
  Mombasa = {
    "Destination": "Mombasa",
    "Price": 12000,
    "Likes": 0,
    "Gallery": [{
        "image": "https://traveldiscoverkenya.com/wp-content/uploads/2016/05/Mombasa-2-768x499.jpg"
    }, {
        "image": "https://i2.wp.com/buildesign.co.ke/wp-content/uploads/2017/11/ez.jpg"
    }]
};

// function that returns the object
  getPlace = (placeName) => {
    return placeName;
}

  // trying to send reaponse of whole object
  res.json(getPlace(req.params.place));
});

ожидаемый результат:

{"Destination": "Mombasa", "Price": 12000, "Likes": 0, "Gallery": [{"image": "https://traveldiscoverkenya.com/wp-content/uploads/2016/05/Mombasa-2-768x499.jpg"},{"image":" https://i2.wp.com/buildesign.co.ke/wp-content/uploads/2017/11/ez.jpg"}]}

фактический результат:

" Момбаса "

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Я думаю, что вы, возможно, захотите иметь родительский объект для вашего Mombasa объекта, чтобы вы могли использовать ключи свойств для получения нужного объекта, например:

const myObjects = {
  Mombasa: {
    "Destination": "Mombasa",
    "Price": 12000,
    "Likes": 0,
    "Gallery": [{
        "image": "https://traveldiscoverkenya.com/wp-content/uploads/2016/05/Mombasa-2-768x499.jpg"
    }, {
        "image": "https://i2.wp.com/buildesign.co.ke/wp-content/uploads/2017/11/ez.jpg"
    }]
  }
};

Затем вы можете получить этот объект, используяключ "Момбаса":

  getPlace = (placeName) => {
    return myObjects[placeName];
  }
0 голосов
/ 02 апреля 2019

Ваш объект должен быть похож на следующий,

, а также перемещать методы и объекты за пределы маршрутизатора.

router.get('/about/:place', (req, res) => {
    // trying to send reaponse of whole object
    res.json(getPlace(req.params.place));
});

let obj = {
    Mombasa: {
        "Destination": "Mombasa",
        "Price": 12000,
        "Likes": 0,
        "Gallery": [{
            "image": "https://traveldiscoverkenya.com/wp-content/uploads/2016/05/Mombasa-2-768x499.jpg"
        }, {
            "image": "https://i2.wp.com/buildesign.co.ke/wp-content/uploads/2017/11/ez.jpg"
        }]
    }
}

// function that returns the object
getPlace = (placeName) => {
    return obj[placeName];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...