A
Знаю про apidoc 🙂
Алексей
Алексей
Но я не пробовал ни fastify, ни этот пакет
Anonymous
Можно из доков сваггер к экспрессу автоген сделать
Если наоборот, то в feathersjs видел плагин
Алексей
Вообще, мой предел мечтаний, что бы по одной и той же схеме в коде и валидация происходила и дока сваггера генерировалась
Anonymous
И валидация была вроде
Anonymous
Давно делал как-то https://github.com/maxsh8x/candy-server/blob/dev/app/routes/api/scope.js
A
esdoc, насколько я понимаю, это про другое. Допустим, поля класса описать)
Алексей
ещё желательно бы не в комментах это всё делать, а в JS, а точнее в TS коде
тогда вообще шикарно будет: и автодополнение IDE по схеме и контроль правильности схемы на этапе компиляции
A
Anonymous
Как не совпадать?
Anonymous
Валидация, тип запроса и прочее по ней генерится
Evgeny
Можно попробовать использовать ajv и https://swagger-toolbox.firebaseapp.com/
Алексей
A
Валидация, тип запроса и прочее по ней генерится
Так просто же. Сходил в метод, поменял token на key, а доку забыл обновить. Вот и всё. Когда у тебя 10 таких мест и ты один в команде - оно работает. Когда 500+ мест и пара человек в команде - нет
Anonymous
Тогда тебе выдаст апиха что нету token
petyappetrov
Привет, народ! Можно ли в express статику хранить вне папки сервера?
Anonymous
Алексей
Алексей
A
petyappetrov
A
A
Это "живая" дока)
Ну, она вроде умеет делать тесты из этого. В таком случае да. А вот если это просто статичная дока - страничка, тогда всё грустно.
сomorsiс
сomorsiс
а, не
A
тут в чём замес:
1. кастомная валидация
2. кастомный обработчик форм
3. кастомный аутпут
4. кастомный статус код на основе того, что там выпало из промиса
Я понимаю, что нету коробочного решения чтобы из этого доку сгенерировать. Но хотелось бы что-то за основу взять.
Потому что входящие данные определены json schem-ой, а исходящие доморощенным декларативным языком процессинга данных.
Алексей
ну вот смотри. Это экспресс + немного валидации через json schema
Можно пропатчить методы роутера через прототип, чтобы они просматривали все middleware на наличие какого-то определённого поля, типа _scheme, создать middleware creator, которая будет заполнять это поле. И тогда получится, что роутер будет знать схемы ко всем роутам. По этим схемам строить валидацию и swagger доку.
A
Алексей
валидацию по любому в рантайме надо будет делать, а построить доку сваггера можно на этапе инициализации, для этого правда придётся пропатчить роутер, чтобы он сохранял информацию
Алексей
но это всё мечты
Алексей
а не готовое решение к сожалению
Алексей
о
Алексей
https://www.npmjs.com/package/swagger-spec-express
Vadim
Привет! Паршу записи с файлов в БД на Монгусе, естественно пользователи могут пихать файлы с уже имеющимися в БД значениями. Можно ли как то сдедать, чтобы эти повторные значения отсеивались? Я пробовал сделать уникальное поле, но через insertMany выдается ошибка при записи повторных
Vadim
Я имею ввиду какой нить элегантный способ, а не вставки по одному с предпроверкой
Joseph
Как можно развернуть такую линку , не соображу как сконфигурировать populate
Anton
Добрый день, есть такой вопрос, а есть способ одновримено запустить node+gulp на одном порте что бы сразу смотреть и правки по файлам и изменения по стилям, скриптам и т.д.
Anton
сейча пользуюсь nodemon+gulp-connect но для того что бы все работало в живую запуска на разных портах (Пример :3000 и :3001)
petyappetrov
Anton
лол, все уже придумано до нас) спасибо )
Sasha
Доброго часа. Имею ubuntu 16.04 и node 4.2.6, однако для запуска zombie нужна node 4.5 >=/ Насколько хорошо пользоваться nvm для решения данной проблемы?
Anonymous
NVM РУЛЕТ)))
Georgiy
без лишних костылей
Anonymous
Точнее не разу не пробовал в докере
petyappetrov
астанавитесь
Sasha
может можно подцепить репозиторий node в таком случае и обновить, более штатными средствами?
Georgiy
а у тебя есть необходимость держать две версии ноды ?
Georgiy
вместо одной текущей ?
Sasha
нет, я надеюсь, что мне хватит новой
Georgiy
ну тогда лучше штатными. если есть необходимость то nvm
Timofey
есть тз и там такое пояснение:
1. На вход получаем некий объект вида {field1: value1, fields..., ttl: seconds}
2. Сервис определяет есть ли в базе документ с такими полями:
как вы это понимаете? речь идет о наличии самих полей или о полях с учетом их значений?
Dmitry
let db = MongoClient.connect(url)
.then(_db => {
return db = _db
})
bot.start(ctx => { // выполнится позже
db.collection('sessions')
.then(res => {
console.log(res)
})
})
db.collection(...).then is not a function
хотя на момент вызова db.collection() - db уже вернулся
Dmitry
Алексей
Dmitry
V
какой-то лютый треш происходит
Алексей
а как по-другому?
const db = await MongoClient.connect(url)
bot.start(ctx => { // выполнится позже
const collection = db.collection('sessions')
console.log(collection)
})
Алексей
и db.collection возвращает сразу коллекцию
Алексей
а не промис
Dmitry
Dmitry
сапсибо, сейчас про awayt-ы почитаю, не использовал ещё
Алексей
блин, придётся залезть в тайпинг и проверить
Evgeny
Dmitry
Алексей
точнее даже не версия
Алексей
а поведение функции
Алексей
то есть функция то одна и та же
V
а зачем ты промис чему-то приравниваешь?
Алексей
V
зачем ты его в переменную пихаешь?