NodeJS Express Пн goose как сделать запрос на получение с параметрами - PullRequest
0 голосов
/ 29 мая 2020

Я пишу метод node js, который хочу найти vlaues, которые соответствуют переданному параметру imei.name, а тестовое поле пусто.

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

router.get('/gettdata/', (req, res, next) => {

    let aa=req.query.imei;
    console.log(aa);
    Post.findOne( {imei:{"imei.name":req.body},
  test:{$exists:false}
  }


    )
      .then((posts) => {
        res.json(posts);
        console.log(posts);
      })
      .catch(err => console.log(err))
  });

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

Post.findOne( {"imei.name":req.body})

, он работает, а когда я использую только

Post.findOne( 
  test:{$exists:false}
 ) 

, он работает, но проблема в том, чтобы использовать их два за один раз

{
        "_id" : ObjectId("5eb7f90fb88d8d4d94184333"),
        "imei" : {
                "name" : "bokhhjbr",
                "modele" : "5486"
        },
        "__v" : 0
}
{
        "_id" : ObjectId("5eb7fb9cb88d8d4d94184334"),
        "imei" : {
                "name" : "865566048694354",
                "modele" : "CPH1803"
        },
        "__v" : 0
}
{
        "_id" : ObjectId("5eba73395fd8dd073065efdf"),
        "imei" : {
                "name" : "bok55555555555hjbr",
                "modele" : "5486"
        },
        "createdAt" : ISODate("2020-05-12T09:58:17.203Z"),
        "updatedAt" : ISODate("2020-05-12T09:58:17.203Z"),
        "__v" : 0
}
{
        "_id" : ObjectId("5ed0f93c0c93ec1c785358ab"),
        "imei" : {
                "name" : "865566048694354"
        },
        "test" : {
                "tactileState" : "1",
                "pixelState" : "1",
                "greyState" : "1"
        },
        "createdAt" : ISODate("2020-05-29T11:59:56.441Z"),
        "updatedAt" : ISODate("2020-05-29T11:59:56.441Z"),
        "__v" : 0
}
{
        "_id" : ObjectId("5ed0f9420c93ec1c785358ac"),
        "imei" : {
                "name" : "865566048694354"
        },
        "test" : {
                "tactileState" : "1",
                "pixelState" : "1",
                "greyState" : "1"
        },
        "createdAt" : ISODate("2020-05-29T12:00:02.040Z"),
        "updatedAt" : ISODate("2020-05-29T12:00:02.040Z"),
        "__v" : 0
}

, и это моя база данных, показанная в cmd.

Мне нужна помощь - спасибо

Ответы [ 2 ]

0 голосов
/ 31 мая 2020

Вам не хватает имени данных, которые вы передали в тело запроса. Если «imei» - это имя данных, которые вы передали в тело, сделайте следующее:

Post.findOne({"imei.name":req.body.imei})
0 голосов
/ 29 мая 2020

Используйте req.params

router.get('/gettdata/:imei', (req, res, next) => {

   console.log(req.params.imei);


})

Вы передаете параметры следующим образом:

http://url.com/gettdata/test

Вы увидите test в консоли.

/gettdata/:imei/:parameter2/:parameter3

Потом передаешь вот так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...