Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Понять мотивы человека или 'query-string' не queryString (https://javascript.ru/forum/misc/76936-ponyat-motivy-cheloveka-ili-%27query-string%27-ne-querystring.html)

EvgeniySaschenko 01.03.2019 03:02

Понять мотивы человека или 'query-string' не queryString
 
Всем привет!

Хочу обсудить важный вопрос для меня.
Случилось так что я захотел подключить модуль query-string (Node.js), строки там попарить... Ну и само собой ничего не парсил - я подозревал что модуль мне не подходит, но это и не важно в данной ситуации.
Захотел я его импортировать через:

import { queryString } from 'query-string';


Но ничего не вышло - и это меня расстроило, потому что пришлось сделать так:

let queryString= require('query-string');


А у меня сверху было написано несколько import и не одного require - require мне портил всю картину, но пришлось сделать.

Через время мне стало интересно - почему я не смог получить объект через import и я полез в 'node_modules'. Там я обнаружил что модуль экспортируется как parseUrl

exports.parseUrl = (input, options) => {
	const hashStart = input.indexOf('#');
	if (hashStart !== -1) {
		input = input.slice(0, hashStart);
	}

	return {
		url: input.split('?')[0] || '',
		query: parse(extract(input), options)
	};
};


Меня удивило что модуль называется 'query-string', а экспортируется как parseUrl. У меня возник вопрос почему "он" так сделал!
Как вы считаете каковы были мотивы? Или же просто необдуманный поступок?

EvgeniySaschenko 01.03.2019 03:04

Не там создал - нужно было в Оффтопик

Alexandroppolus 01.03.2019 20:27

Цитата:

Сообщение от EvgeniySaschenko
Не там создал - нужно было в Оффтопик

тема на своем месте, не надо её в офтопик

надо было так:
import { parseUrl } from 'query-string';


можно ещё сделать
import queryString from 'query-string';

тогда в переменной queryString будут все методы, это аналогично твоему варианту require

а вот первый вариант делает ещё и "деструктуризацию" объекта, и у тебя сразу появляются все переменные, со значениями, перечисленными в фигурных скобках. Новая хипстерская фича в языке.

EvgeniySaschenko 02.03.2019 14:40

Хотел пошутить, а вместо этого понял import)) Спасибо за ответ.


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