Тип данных Object Array

Этот AQL возвращает объект, который я хотел бы использовать.

const keys = db._query(aql`
    FOR huis IN test
    FILTER huis._key in ${req.queryParams.keys}
    RETURN {
        'key': huis._key,
        'adres': huis.adres,
        'postcode': huis.postcode,
        'plaats': huis.plaats
    }
`);

Это возвращает этот объект:

[
  {
    "key": "374875",
    "adres": "Klaverstraat 7",
    "postcode": "2197GV",
    "plaats": "Leiden"
  }
]

Тогда я бы хотел взять ключ так:

keys[0].key

Это работает в JavaScript, когда я делаю скрипку, но не в Foxx.

const test = [
  {
    "key": "374875",
    "adres": "Klaverstraat 7",
    "postcode": "2197GV",
    "plaats": "Leiden"
  }
]

console.log(test[0].key)

374875

Почему это возвращает "неопределенный" в Foxx, но правильные данные в скрипте?

1 ответ

Решение

Этот код Foxx:

router.get('/', function (req, res) {
  const test = [
    {
      "key": "374875",
      "adres": "Klaverstraat 7",
      "postcode": "2197GV",
      "plaats": "Leiden"
    }
  ];

  console.log(test[0].key);
  res.status(200).send(test[0]);
}, 'test1')
  .summary('test1')
  .description('test1');

Возвращает через REST:

{
  "key": "374875",
  "adres": "Klaverstraat 7",
  "postcode": "2197GV",
  "plaats": "Leiden"
}

Журналы в журналах ArangoDB:

374875

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

Посмотрите на этот код:

router.get('/', function (req, res) {
  const keys = db._query(aql`
    FOR huis IN test
    FILTER huis._key == "374875"
    RETURN {
        'key': huis._key,
        'adres': huis.adres,
        'postcode': huis.postcode,
        'plaats': huis.plaats
    }
`).toArray();

  console.log(keys[0].key);

  res.status(200).send(keys);

}, 'test1')
  .summary('test1')
  .description('test1');

Здесь FILTER состояние было изменено, и .toArray() добавляется после выполнения запроса. Это гарантирует, что запрос завершен, а затем содержимое keys как и следовало ожидать.

Другие вопросы по тегам