Метод get в Express-mongodb «Передаваемый аргумент должен быть одной строкой из 12 байтов или строкой из 24 шестнадцатеричных символов» - PullRequest
1 голос
/ 30 мая 2019

В настоящее время я работаю в API с mongodb-nodejs-express, реализующим метод get, который находит все хранилища в моей базе данных, используя его идентификатор, проблема в том, что я продолжаю получать следующую ошибку при использовании метода get:

"error": "Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters"

Это ссылка, которую я использую, чтобы доказать

http://localhost:4005/trading/store/1124

Это метод, который я реализовал

router.get('/store/:id', async (req, res) => {
    const { id } = req.params;
    const db = await connect();
    try{
    const result = await db.collection(collection).find({ store_id: ObjectID(id)});
    res.json(result)
    }
    catch (error) {
        res.status(500).json({ error: error.toString() });
    }
})

Это пример того, как выглядит моя БД

{
        "_id": "5cef828a7443855d02fc320e",
        "timestamp": "26/03/2019 18:34",
        "store_id": "1124",
        "user_id": "123",
        "product_id": "949",
        "price": "528"
    },

Буду очень признателен за любую подсказку или помощь, и заранее благодарю за то, что нашли время прочитать мой вопрос.

1 Ответ

1 голос
/ 30 мая 2019

Ваш strore_id - это просто строка. Поэтому ваш запрос должен быть таким:

db.collection.find({ store_id: id});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...