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

cyber 14.06.2016 10:39

как красиво сделать импорт для таких штук, как изменить такой экспорт
export default {
 x:{
   y: {
     d: ..
    }
  }
}

что бы можно было например сделать
import d from "..."

что бы не делать такого
import x from "..."
var d = x.y.d;

?

destus 14.06.2016 11:04

cyber,
сделай обёртку для такого объекта

cyber 14.06.2016 11:19

destus, в каком смысле обертку? геттеры?

destus 14.06.2016 11:28

cyber,
а как модуль-фабрика в CommonJS нельзя сделать?

cyber 14.06.2016 12:04

destus, не я перехожу полностью на es6 import/export. webpack 2 развалил совместимость между, module.exports и import. так же они поломали https://github.com/59naga/babel-plug...module-exports

destus 14.06.2016 17:30

cyber,
а через геттер, не устраивает? Или
let obj = {
	x: {
		y: {
			d: ...
		}
	}
}

export {obj, obj.x.y.d} ...

т.е. в любом случае где-то надо явно обратиться к свойству d, чтобы получить ссылку.

Erolast 15.06.2016 10:56

Цитата:

как красиво сделать импорт для таких штук,
Раздельный экспорт?
//a.js
export const d = {};
export const y = {d};
export const x = {y};

//b.js
import {d} from a;
import {y} from a;
import {x} from a;

assert(x.y == y);
assert(x.y.d == d);

Octane 15.06.2016 14:14

Какой самостоятельный роутер сейчас самый модный?)

destus 15.06.2016 16:35

Цитата:

Сообщение от Safort (Сообщение 416968)
Всем привет. Кто-нибудь юзает passport.js?

Привет, сейчас в проекте использую. Пока использую как LocalStrategy. Как тебе этот middleware? Что интересного почитать, кроме доки и хабра?

cyber 15.06.2016 22:12

Erolast,
как одно из решений, которое я нашел

cyber 15.06.2016 22:13

как избавится в ноде от путей типа ../../../utils/index в require ?

bes 15.06.2016 23:00

Цитата:

Сообщение от bes
в общем, попробовав несколько вариантов и не добившись положительного результата, до углублённого изучения кода grunt-a и его правки, спрашиваю, велосипедил ли кто-нибудь уже так?

собственно grunt править не пришлось
вариант решения здесь
http://javascript.ru/forum/node-js-i...irektorii.html

kobezzza 16.06.2016 00:10

Цитата:

Сообщение от cyber (Сообщение 419584)
как избавится в ноде от путей типа ../../../utils/index в require ?

https://www.npmjs.com/package/findup-sync и похожие модули, но похеришь автокомплит в IDE.

trikadin 16.06.2016 10:56

Цитата:

Сообщение от cyber
как избавится в ноде от путей типа ../../../utils/index в require ?

Не надо, поверь. Ничего плохого в них нет, а вот если их убирать и заменять какими-нибудь конструкторами путей -- путаницы и неудобств будет куча.

cyber 16.06.2016 11:02

Цитата:

Сообщение от trikadin
Ничего плохого в них нет,

пример из реального кода :|
../../../../../../../../../../../../../utils/index

destus 16.06.2016 11:16

Цитата:

Сообщение от cyber (Сообщение 419584)
как избавится в ноде от путей типа ../../../utils/index в require ?

Ну порядок поиска вроде как в документации описан. Можно и переменную окружения NODE_PATH настроить соответствующим образом.

cyber 16.06.2016 11:19

destus, да, я знаю, как работает require,в NODE_PATH тоже много не запишешь, просто спрашивал, кто как решает эту проблему

destus 16.06.2016 11:21

cyber,
в node_modules можно закинуть :)

trikadin 16.06.2016 11:32

Цитата:

Сообщение от cyber
пример из реального кода :|

Боюсь, это уже с архитектурой проблемы.

Хотя, в общем-то, мне бы всё равно было пофиг на такую строку.

cyber 16.06.2016 11:52

Цитата:

Сообщение от trikadin
Боюсь, это уже с архитектурой проблемы.

знаю, пытаюсь это как то исправить

kobezzza 22.06.2016 14:11

Таки дошли руки до перехода с JSCS на ESLint (по причине мерджа JSCS в ESLint и закрытия проекта) - полёт нормальный, всё пока гуд, но на настройку конфига ушёл не один час)

trikadin 23.06.2016 15:32

Цитата:

Сообщение от kobezzza
на настройку конфига ушёл не один час)

В связи с чем? Они же обещали не ломать совместимость правил.

kobezzza 23.06.2016 15:50

Цитата:

Сообщение от trikadin (Сообщение 420250)
В связи с чем? Они же обещали не ломать совместимость правил.

Это был просто маркетинг, совместимости нет :D

trikadin 23.06.2016 18:44

Хм, то ли мне память отказывает, то ли текст поменялся :)
Цитата:

We are working with the ESLint team to create some tools and processes to make the transition as easy as possible. Our hope is that it will be a smooth upgrade and you wouldn’t even notice :).
(Отсюда)

Крч, нескоро, подозреваю, переползу на еслинт.

nerv_ 02.07.2016 12:53

Цитата:

Сообщение от kobezzza
Началось формирование ночных сборок браузерного движка Servo

Скачал посмотреть из любопытства. Пока не очень обнадеживает. Лично я особого performance boost на Ubuntu 16.04 не заметил, скорее наоборот.

nerv_ 11.07.2016 09:42

Несколько вопросов к тем, кто разрабатывает на Node.js:
1) какую БД вы используете?
2) почему именно эту БД?
3) какие модули (ORM?) для работы с этой БД?

destus 11.07.2016 11:00

nerv_,
mongoose. А для кого статистику собираешь?

Erolast 11.07.2016 13:59

1. MongoDB
3. Mongoose
2. Я нуб и не понимаю в чем разница между этими вашими БД, так что использую первую попавшуюся :)

trikadin 11.07.2016 15:33

nerv_, эм, так от задачи же зависит. Где-то Редис, где-то Монга, где-то мускул. Если говорить о том, что лучше знаю -- Монгу, наверное. Без монгуза, убогий он.

nerv_ 13.07.2016 10:27

Всем спасибо за ответы :)

Цитата:

Сообщение от destus
А для кого статистику собираешь?

исключительно для себя

Цитата:

Сообщение от trikadin
так от задачи же зависит. Где-то Редис, где-то Монга, где-то мускул.

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

Хочешь сказать под все эти БД пишешь нативно + много SQL руками?
Я, например, сейчас демку делаю mysql + camintejs. Приятная ORM, но много в ней нет, той же связи Many-to-Many.

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, время: 17:35.