❝Frontier: Источник статьи в том, что друг Шу Цзяна был прав в некоторых позициях в недавнем интервью.
❞node
Требования к мастерству ",Конечноnode
Он постепенно изменился с «плюсов», набранных многими компаниями, на «сильные показатели».Причина «паники» не что иное, как то, что в проектах обычно не нужно использовать или меньше использовать узлы, плюс наше поглощение знаний ,большинство из них фрагменты Знания сращены воедино, и отсутствует полное и систематическое прочесывание.Воспользуйтесь этой возможностью, чтобы реорганизовать его.Конечно, вам все равно нужно участвовать в реальном бою.Эта статья основная статья.
1. Перекус перед едой 🥧
❝👨Вопрос: Deno в последнее время очень популярен, заменит ли он ноду, у ноды нет будущего?
❞
Не паникуйте, Node по-прежнему является самой популярной средой выполнения JavaScript на стороне сервера в сообществе.Появление Deno на самом деле связано с улучшением текущего Node (нового колеса), включая встроенную поддержку TS, безопасность, поддержку браузера ES Module. модули и другие функции. Ничего не меняется.Хотя с Deno, Node.js может и не понадобиться в будущем, но новые вещи всегда нужно выводить и тестировать.Поэтому Node сложно заменить за короткое время.Опирается на сильное сообщество
Для получения дополнительной информации о Deno вы можете прочитать
- Deno официально выпущен, досконально поймите разницу с Node.
- Руководство по началу работы с Deno Runtime Tutorial: альтернативы Node.js
2. Ужин 🍔
❝Поговорите с вами о некоторых базовых знаниях, ответив на некоторые общие вопросы об узлах.
❞
2.1 Как узел получает параметры из командной строки
❝ответ:
❞process.argv
. process — это глобальная переменная, которая предоставляет информацию о текущем процессе Node.js, а свойство process.argv возвращает массив, информация в массиве включает аргументы командной строки при запуске процесса Node.js.
Например: нам нужно определить команду узла в скрипте, а затем выполнить измененный файл, чтобы получить другие параметры.
❝Разработка: зачем сращивать (2)? Посмотрим на значение других параметров
❞
- process.argv[0] : возвращает абсолютный путь, по которому находится исполняемый файл, запустивший процесс Node.js.
- process.argv[1] : путь к выполняющемуся в данный момент файлу JavaScript.
- process.argv.splice(2): после удаления первых двух оставшиеся элементы являются другими параметрами командной строки (то есть нашей пользовательской частью).
❝Насчет получения параметров из командной строки, вы также можете комбинироватьcommanderиз
❞commander.parse(process.argv);
2.2 Каковы соответствующие пути к файлам для узла?
❝Ответ таков: пути к файлам в Node имеют
❞__dirname
,__filename
,process.cwd()
,./ 或者 ../
В следующем примере показана разница между этими путями к файлам.
Давайте посмотрим на структуру каталога, в котором мы сейчас работаем.
KSDK/
-src/
-test.js
Напишите следующий код в test.js👇Затем запустите его под src и KSDK соответственно, каков результат?
- Запустите в каталоге src
- Запустить в каталоге KSDK
В сравнении видно, что изменились только два последних, и можно сделать следующие выводы 🚀
-
__dirname
: всегда возвращает абсолютный путь к папке, в которой находится исполняемый js -
__filename
: всегда возвращает абсолютный путь к выполненному js -
process.cwd()
: всегда возвращает абсолютный путь к папке, в которой была запущена команда node.
2.3 Что представляют собой API пути, связанные с узлом?
❝Ответ: Модуль path предоставляет некоторые утилиты для работы с путями к файлам и каталогам.
❞path.dirname
,path.join
,path.resolve
посмотреть другие документыPath API
-
path.dirname()
: возвращает имя каталога пути -
path.join()
: объединить все заданные фрагменты пути вместе, затем нормализовать полученный путь. -
path.resolve()
: метод анализирует последовательность путей или фрагментов пути в абсолютный путь, анализируемый как абсолютный путь относительно текущего каталога, эквивалентный команде cd.
Мы используем простую демонстрацию, чтобы отличить
❝Мы видели
❞path.join(__dirname, '../lib/common.js')
а такжеpath.resolve(__dirname, '../lib/common.js')
Возвращаемые результаты одинаковы, можно ли их заменить друг другом? Вы смотрите на следующий пример👇, может быть вам будет понятнее
Путь по-прежнему является путем, показанным выше.
- присоединиться, чтобы соединить каждый сегмент пути вместе, разрешить поставить
/
как корневой каталог
path.join('/a', '/b') // '/a/b'
path.resolve('/a', '/b') //'/b'
- присоединиться к полям соединения напрямую, разрешить - проанализировать путь и вернуться
path.join("a","b") // "a/b"
path.resolve("a", "b") // "/Users/tree/Documents/infrastructure/KSDK/src/a/b"
2.4 Как сделать чтение файла узла?
❝Ответ: API, предоставляемый модулем файловой системы fs, также является одним из важных модулей в узле.Модуль fs в основном используется для таких операций, как чтение, запись, перемещение, копирование, удаление и переименование файлов.
❞
через простое переименование APIrename
Используется, используется в строительных лесах до
❝⏰Следует отметить, что при использовании require('fs') для загрузки модуля fs все методы в модуле fs имеют две формы: синхронную и асинхронную. Переименование, которое мы только что показали, является асинхронным вызовом метода, потому что в загруженном процессе , Следует использовать асинхронный метод.Синхронная версия заблокирует весь процесс (остановит все соединения).Конечно, синхронный метод, соответствующий fs.rename,
❞fs.renameSync
Давайте посмотрим на демонстрацию метода синхронизации, чтобы определить, существует ли файл
❝Еще один момент, который следует отметить, заключается в том, что независимо от синхронизации или асинхронности попытайтесь соответствующим образом обработать выброшенное исключение.
❞
2.5 Для чего используется модуль URL узла?
❝Ответ: Струнный анализ, URL-композиция и другие функции, используемые для URL, в основном в том числе следующие API.
❞url.parse()
,url.format()
-
url.parse
: может анализировать строку URL и возвращать объект URL. -
url.format
: Программируйте объект входящего URL к строке URL и возврат
кurl.parse
Например:
разобрать результат
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'baidu.com:8080',
port: '8080',
hostname: 'baidu.com',
hash: '#node',
search: '?query=js',
query: 'query=js',
pathname: '/test/h',
path: '/test/h?query=js',
href: 'http://baidu.com:8080/test/h?query=js#node'
}
2.6 Чем служба создания http-модуля узла отличается от фреймворков Express или Koa?
❝Ответ таков: Express — это фреймворк на стороне сервера. Фреймворк просто инкапсулирует http-модуль узла. Express поддерживает собственный метод написания узла. Express не только инкапсулирует сервер, но также инкапсулирует такие функции, как промежуточное ПО и маршрутизация, чтобы облегчить разработка веб-серверов, другими словами экспресс = модуль http + промежуточное ПО + маршрутизация
❞
Посмотри сначалаhttp
Как модули реализуют простой сервер
运行3000端口
Вы можете получить доступ к браузеру, чтобы распечататьhello node.js
Далее посмотрим, как реализован экспресс
Вышеприведенное реализует простую логику на стороне сервера, включая промежуточное ПО и настройки маршрутизации.
2.7 В чем разница между промежуточным ПО Express и Koa?
❝Ответ: Промежуточное ПО:
❞app.use
Метод заключается в вставке нового промежуточного программного обеспечения в очередь промежуточного программного обеспечения.Метод обработки экспресс-промежуточного программного обеспечения является линейным.После следующего он продолжает поиск следующего промежуточного программного обеспечения.Конечно, если next() не вызывается, следующая функция не будет вызываться .вызов будет прерван
- Промежуточное ПО Express: через следующий механизм, т. е. предыдущее промежуточное ПО будет запускать следующее промежуточное ПО через следующий
- промежуточное ПО koa2: реализовано через асинхронное ожидание, порядок выполнения промежуточного ПО — модель «луковое кольцо» (рекомендуется)
Давайте посмотрим на простой пример ниже koa2, вы можете сравнить реализацию Express
посмотри выходной лог
2.8 Что такое шаблонизатор?
❝Ответ таков: механизм шаблонов — это инструмент, который генерирует HTML-страницы, комбинируя шаблоны страниц и отображаемые данные. По сути, это требование внутреннего рендеринга (SSR). Кроме того, сама страница рендеринга Node является чисто статической. Когда нам нужны разные страницы Чтобы быть более эффективными и гибкими, нам нужно использовать механизм шаблонов, чтобы усилить страницу и лучше выделить преимущества рендеринга на стороне сервера.
❞
Распространенными основными механизмами шаблонов являются:
- art-template официальная документация: Известен как самый эффективный механизм шаблонов.
- ejs официальная документация: Это библиотека шаблона JavaScript, которая генерирует HTML-строку из данных JSON.
- pug официальная документация: это надежный, гибкий и многофункциональный механизм шаблонов, специально разработанный для платформы Node.js.
Продолжение следует...
🌲Предыдущие статьи Соуса:
- Расскажите об инструментах ежедневной совместной работы для фронтенд-разработки
- данные формы внешнего интерфейса
- Как лучше управлять интерфейсом API
- Микро интерфейсные вещи
- передовой инжиниринг
- Внешний интерфейс Nginx
- Развертывание интерфейсной эксплуатации и обслуживания
Пожалуйста, выпейте 🍵 Не забудьте подключиться три раза~
1. После прочтения не забудьте поставить лайк 🌲 соусу, там есть 👍 и мотивация
2. Обратите внимание на интересные вещи в интерфейсе официального аккаунта и пообщайтесь с вами об интересных вещах в интерфейсе.
3. Статья размещена на GithubfrontendThingsСпасибо, Стар✨