Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 January 28

Р

Руслан in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
стек для фронтенда – TypeScript, Vue.js и Node.js
ШоОниСебеПозволяют
?!
Лёгким движением руки, фронтендер превращается.. превращается фронтендер...
источник

BK

Bogdan Korzun in NodeUA - JavaScript and Node.js in Ukraine
Руслан
Лёгким движением руки, фронтендер превращается.. превращается фронтендер...
))
источник

Ш

Шима in NodeUA - JavaScript and Node.js in Ukraine
такое ощущние что вакансии составляют проститутки, коих держат ради мяса
источник

MB

Maxim Bilchenko in NodeUA - JavaScript and Node.js in Ukraine
Шима
такое ощущние что вакансии составляют проститутки, коих держат ради мяса
Цццц ууу, соу руд
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Andrey Gubanov
Всем привет. Подскажите плиз ORM для Mongodb с хорошей поддержкой TS. Всегда юзал mongoose, но там неприятности с кастомными запросами (большая проблема), а схему нужно объявлять дважды (проблема поменьше) в виде и схемы и TS интерфейса.
mkdir test
cd test
npm i mongodb @types/node @types/mongodb
touch index.js
code .

./index.js:
const mongodb = require('mongodb');
const client = new mongodb.MongoClient('localhost');

/**
* @typedef {Object} Test
* @property {string} tagsString
* @property {'tag1' | 'tag2' | 'tag3'} tagsUnion
*/

/**
* @typedef { import('mongodb').Collection<Test> } TestCollection
*/

(async () => {
   await client.connect();
   const db = client.db('test');
   /** @type {TestCollection} */
   const collection = db.collection('test');

   collection.find({
       tagsString: { $all: ['str'] },
       tagsUnion: { $all: ['ta2'] }, // do not check union, but know about $all keyword
       $and: [{ tagsUnion: '' }] // check union
   });
})();


https://ibb.co/qD5ygf3

https://ibb.co/JxzTx69
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Andrey Это то что надо было?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
mkdir test
cd test
npm i mongodb @types/node @types/mongodb
touch index.js
code .

./index.js:
const mongodb = require('mongodb');
const client = new mongodb.MongoClient('localhost');

/**
* @typedef {Object} Test
* @property {string} tagsString
* @property {'tag1' | 'tag2' | 'tag3'} tagsUnion
*/

/**
* @typedef { import('mongodb').Collection<Test> } TestCollection
*/

(async () => {
   await client.connect();
   const db = client.db('test');
   /** @type {TestCollection} */
   const collection = db.collection('test');

   collection.find({
       tagsString: { $all: ['str'] },
       tagsUnion: { $all: ['ta2'] }, // do not check union, but know about $all keyword
       $and: [{ tagsUnion: '' }] // check union
   });
})();


https://ibb.co/qD5ygf3

https://ibb.co/JxzTx69
срань господня, это же монга, она еще жива?
источник

AG

Andrey Gubanov in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
Andrey Это то что надо было?
хм, а если это .ts файл?
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Andrey Gubanov
хм, а если это .ts файл?
если это ts файл то синтаксис другой
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
ну ts схавает js
источник

NG

Nikolay Govorov in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
срань господня, это же монга, она еще жива?
"Ну удобно же, можно джсоны складывать" (с)
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
монга вечна
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
я один раз тестовое задание на ней делал... для Ruby стажировки в одной компании...
источник

ET

Eugene Timokhin in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
монга вечна
вечная память F 🙁
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Andrey Gubanov
хм, а если это .ts файл?
Да я глянул там у них типы кривые и ts матюкаетсья на never

А тип там для all и правда кривой
$all?: T extends ReadonlyArray<infer U> ? any[] : never;

где T это [P in keyof T]?: Condition<T[P]>;
Короче в нашем случае либо string либо union

ну так вот string не readonly array если че, и по этому выводиться тип never.

У тебя два выхода, либо создавать PR d typedefenitions, либо полностью скопировать себе типы монги и изменить это дело на
что то типо
$all?: T[]

Или может отказаться от $all=)

$and: [
   {tagsUnion: 'tag1'},
   {tagsUnion: 'tag2'}
] ~  tagsUnion: {$all:['tag1', 'tag2']}

Ну ли tsignore

Но ты ж ответственый парень и зарепортишь issue на github, и пока он процеситься и делаеться можешь выбрать workaround=)
источник

AG

Andrey Gubanov in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
Да я глянул там у них типы кривые и ts матюкаетсья на never

А тип там для all и правда кривой
$all?: T extends ReadonlyArray<infer U> ? any[] : never;

где T это [P in keyof T]?: Condition<T[P]>;
Короче в нашем случае либо string либо union

ну так вот string не readonly array если че, и по этому выводиться тип never.

У тебя два выхода, либо создавать PR d typedefenitions, либо полностью скопировать себе типы монги и изменить это дело на
что то типо
$all?: T[]

Или может отказаться от $all=)

$and: [
   {tagsUnion: 'tag1'},
   {tagsUnion: 'tag2'}
] ~  tagsUnion: {$all:['tag1', 'tag2']}

Ну ли tsignore

Но ты ж ответственый парень и зарепортишь issue на github, и пока он процеситься и делаеться можешь выбрать workaround=)
да, варианты есть, но сильно заморачиваться тоже не хочется
источник

VN

Viacheslav Nikitin in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Подожди до субботы, покажу
Приветсвую! Подскажите как можно дебажить Example?
источник

VN

Viacheslav Nikitin in NodeUA - JavaScript and Node.js in Ukraine
Viacheslav Nikitin
Приветсвую! Подскажите как можно дебажить Example?
Я использую VSCode, который при запуске просто повисает, куда смотреть )?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Viacheslav Nikitin
Приветсвую! Подскажите как можно дебажить Example?
Дебажить вообще последнее дело, но точно так же дебажить, как и просто в ноде, но в ноду встроен дебагер и к нему можно подключиться из chrome dev tools
источник

S

Susa in NodeUA - JavaScript and Node.js in Ukraine
ID:0
Когда будут примеры?
источник