Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

trikadin 13.07.2016 17:27

Цитата:

Сообщение от nerv_
Хочешь сказать под все эти БД пишешь нативно + много SQL руками?

Много SQL не пишу, поймал) Так как нет нужды. А под монгу ORM использовать бессмысленно, имхо. Там и без него просто, особенно с async functions. Для валидации -- JSON Schema. И даже если припрёт использовать -- то точно не монгуз, у него схема отстой.

Про редис -- ну тем более, он же тупо key-value, очень шустрое.

cyber 15.07.2016 10:33

kobezzza, что там с декораторами решили? Их оставят в стандарте или нет?

kobezzza 15.07.2016 10:47

Цитата:

Сообщение от cyber (Сообщение 422144)
kobezzza, что там с декораторами решили? Их оставят в стандарте или нет?

Там всё зависло, думаю оставят, но войдут в стандарт году в 18-19.

Erolast 17.07.2016 18:38

Взяли и максимуса опять забанили.
Нормально же себя вел)

Safort 17.07.2016 22:35

Erolast,
так у него же пожизненный бан, нечего было язык распускать.

nerv_ 20.07.2016 14:57

Цитата:

Сообщение от trikadin
Для валидации -- JSON Schema.

Будь любезен, покажи пример валидации. Желательно, чтобы еще файлы валидировать можно было :)

Вопрос ко всем: какие модули исопльзуете для валидации на Node.js?

Для koa я нашел следующие:
https://github.com/nswbmw/koa-router-schema
https://github.com/Jackong/koa-input
https://github.com/RocksonZeta/koa-validate
https://github.com/nswbmw/koa-scheme
https://github.com/koajs/parameter

Теперь задача определится, какой использовать :)

kobezzza 20.07.2016 15:35

Я юзаю https://github.com/hapijs/joi

trikadin 20.07.2016 15:51

Цитата:

Сообщение от nerv_
Будь любезен, покажи пример валидации.

Схему целиком скидывать не буду, но как-то так:
{
  "id" : "/inventory#",
  "properties": {
    "_id": {
      "type": "string",
      "format": "ObjectID"
    },
    "slug": {
      "type": "string",
      "pattern": "^[0-9a-zA-Z-_]+$"
    },
    "uuid": {
      "type": "string",
      "format": "uuid"
    },
    "condition": {
      "type": "object",
      "properties": {
        "cityIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 0
          },
          "minItems": 1,
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    },
    "where": {
      "type": "object",
      "properties": {
        "offset": {
          "type": "integer",
          "minimum": 0
        },
        "screenName": {
          "type": "string",
          "default": "main"
        }
      },
      "additionalProperties": false
    }
  }
}


Цитата:

Сообщение от nerv_
Желательно, чтобы еще файлы валидировать можно было

Хранить файлы в БД? Это не ко мне.

Кстати, для небольших случаев валидации я тоже использую joi -- всё-таки полноценные схемы заморочно писать, а в joi всё быстро и понятно. Плюс он валидирует не JSON-объект, а JS-объект (т. е. там можно и наличие ф-ции проверить, например).

nerv_ 20.07.2016 19:20

kobezzza, спасибо :)

Цитата:

Сообщение от trikadin
Хранить файлы в БД?

Где ты это прочитал?)
за схему спасибо

trikadin 20.07.2016 19:40

Цитата:

Сообщение от nerv_
Где ты это прочитал?)

Ну, я говорю, что использую для валидации данных в монге json-схему. Ты просишь показать пример валидации, желательно, чтобы файлы тоже можно было валидировать. Я делаю из этого вывод, что ты хранишь файлы в бд)

Цитата:

Сообщение от nerv_
за схему спасибо

Да было б за что :) Таких примеров можно сотни накопать. JSON -- он JSON и есть, не суть, кладешь ты его в монгу или на файловую систему. Я понимаю, зачем нужны ORM для релях -- там представление данных другое, и его в любом случае приходится мапить, а ORM позволяет это руками не делать, а вот для монги, имхо, она нафиг не уперлась. Да, там есть пара пакостных мест, типа преобразований ObjectID из строки в бинарный тип, но в остальном...

Если решишь юзать json-схему для валидации -- бери ajv, она самая шустрая и прокачанная.


Часовой пояс GMT +3, время: 20:32.