Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2019, 03:02
Интересующийся
Отправить личное сообщение для EvgeniySaschenko Посмотреть профиль Найти все сообщения от EvgeniySaschenko
 
Регистрация: 25.11.2018
Сообщений: 15

Понять мотивы человека или '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. У меня возник вопрос почему "он" так сделал!
Как вы считаете каковы были мотивы? Или же просто необдуманный поступок?
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2019, 03:04
Интересующийся
Отправить личное сообщение для EvgeniySaschenko Посмотреть профиль Найти все сообщения от EvgeniySaschenko
 
Регистрация: 25.11.2018
Сообщений: 15

Не там создал - нужно было в Оффтопик
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2019, 20:27
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

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

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


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

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

а вот первый вариант делает ещё и "деструктуризацию" объекта, и у тебя сразу появляются все переменные, со значениями, перечисленными в фигурных скобках. Новая хипстерская фича в языке.
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2019, 14:40
Интересующийся
Отправить личное сообщение для EvgeniySaschenko Посмотреть профиль Найти все сообщения от EvgeniySaschenko
 
Регистрация: 25.11.2018
Сообщений: 15

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск