Прежде чем изучать узел, вы должны дистанцироваться от других [узел столбец 01]

JavaScript
Прежде чем изучать узел, вы должны дистанцироваться от других [узел столбец 01]

Колонка Курс Введение

Эта техническая колонка предназначена для изучения узла с 0 и использования node+koa+sequelize+mysql для построения проекта корпоративного уровня с 0 до 1 (на самом деле, я тоже изучаю ~ хахаха)

Эта техническая колонка разбита на 7 дней

Официальный аккаунт [front-end person], первый выпуск

1. Прежде чем изучать узел, вы можете открыть разрыв с другими

2. Чтобы выучить коа, вы должны знать основы обучения

3. Знания MySQL, которые также должны изучить фронтендеры

4. Чтобы выучить коа, вам обязательно нужно выучить сиквелайз

5. Научить вас создавать отличную архитектуру проекта koa

6. Если вы не напишете несколько интерфейсов, вы не узнаете, насколько вы хороши

7. Мне не нужно развертывать с помощью Docker, откуда мне знать, насколько это плохо

Почему вам всегда легко осваивать Node?

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

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

По его мнению, нода не может быть только этими API.Если начать, то можно просто сделать это напрямую.Что за коа,какое яйцо,это разве не официальная скаффолдинг и делается одним словом?

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

Это приводит к тому, что, по вашему мнению, узел очень прост, узел просто пишет несколько интерфейсов!

В каких сценариях подходит для использования узел?

Вот как я изучаю Node. Прежде всего, мне нужно знать, какие проблемы может решить Node? В каких сценариях это больше подходит.

На самом деле, на мой взгляд, узел может делать почти все, что может сделать java на ранней стадии Причина, по которой они решили не использовать узел для разработки, а использовать разработку java, заключается в том, что окружающая технология узла действительно не такая зрелая. как javan, и решений не так много.просто

Например, большинство баз данных, поддерживающих node, имеют только mongodb mysql, и все они являются облегченными базами данных, а в mongodb также отсутствуют некоторые более стабильные периферийные инструменты для управления базами данных и их обслуживания. А в случае большого объема данных скорость запроса данных

Отсутствие еще более заметно. На самом деле есть много других несовершенств, которые в целом приводят к сильному снижению избирательности узла в развитии бизнеса.

Но этого вполне достаточно для разработки легковесных приложений.Node также в основном имеет те же функции, что и язык java!Конечно, Node играет подавляющую роль во фронтенд-инжиниринге.Здесь мы только сравним преимущества в разработке приложений.Недостаток.

Вы должны знать это, прежде чем изучать узел!

На самом деле, когда речь идет о узле, мы должны говорить о фронтенд-инжиниринге. Фронтенд-инжиниринг популярен уже несколько лет. Теперь им занимаются компании всех размеров. компания, то это должно быть Как технический руководитель, вы должны иметь важные KPI,

На самом деле, это также та часть, которую вы должны реализовать. Потому что это существенно улучшает эффективность разработки разработчика.

Фронтенд-инжиниринг, по сути, предполагает очки знаний: io операции и http запросы, поэтому при изучении ноды очки знаний этих двух частей должны быть абсолютно в совершенстве (упор делается на понимание), только на самом деле , нам этих двух обязанностей достаточно, чтобы выучить на всю жизнь (шучу, то есть подчеркнуть его значимость).

Прежде чем изучать узел, вы должны ознакомиться с этими способностями!

Ниже приведены несколько возможностей (apis), которые мы должны знать заранее при изучении узла, чтобы вы знали, что узел может делать.

модуль fs (файловая система)

Может читать и записывать файлы или папки, создавать операции и управлять разрешениями

модуль узла child_process (дочерний процесс)

NodeJs — это язык с одним процессом, и он не может создавать несколько потоков для одновременного выполнения, как Java. Однако у одного процесса также есть проблема, заключающаяся в том, что он не может в полной мере использовать многоядерный механизм ЦП, но вы можете создать несколько процессов через child_process, чтобы в полной мере использовать многоядерный ЦП и завершить работу нескольких процессов. .

кластерный модуль

Один экземпляр Node.js выполняется в одном потоке. Чтобы в полной мере воспользоваться преимуществами многоядерной системы, иногда необходимо включить набор процессов Node.js для обработки рабочих нагрузок.

Модуль кластера может создавать дочерние процессы, которые совместно используют порты сервера, и общее имя для этой группы сервисных процессов называется кластером. Я надеюсь, что в следующий раз, когда вы будете обсуждать технологии с бэкендом (когда будете ржать), вы сможете добавить несколько слов, когда дело доходит до этого технического момента.

Сервисные кластеры обычно используются в масштабных развертываниях сервисов nginx.Для обеспечения нормальной и стабильной работы сервисов будет запущено несколько сервисов (то есть сервисный кластер).

dgram (датаграмма)

Модуль dgram обеспечивает реализацию сокетов пакетов данных UDP, может использоваться для сценариев и сценариев приложений: онлайн-видео, VoIP, онлайн-чат

DNS (сервер доменных имен)

Может использоваться для разрешения доменного имени на соответствующий ip

const dns = require('dns');
dns.lookup('baidu.com', (err, address, family) => {
  console.log(`域名对应ip地址==>${address}类型:${family}`);
});

события (триггер события)

Может использоваться для создания пользовательского прослушивателя событий, events.on() используется для регистрации прослушивателя, events.emit() используется для запуска события.

   const EventEmitter = require('events');
   const myEmitter = new EventEmitter();
   //监听事件
   myEmitter.on('event', () => {
     console.log('接受到触发事件');
   });

   //触发事件
   myEmitter.emit('event');

https (HTTPS)

Может создать службу http с протоколом https

const https = require('https');
const fs = require('fs');

//创建服务
https.createServer({
  //证书(证书网上有免费生成的方法)
  pfx: fs.readFileSync('test/fixtures/test_cert.pfx'),
  //证书秘钥
  passphrase: '密码'
},(req, res) => {
  res.writeHead(200);
  res.end('返回给前端的信息');
}).listen(8080);

сеть (сеть)

NET используется для создания потокового TCP- или IPC-сервера.

// 模拟服务端
const net = require('net');

const server = net.createServer((connect) => {
  connect.write('你好\r\n');
  //继续等待连接
  connect.pipe(connect);
});


server.on('error', (err) => {
  throw err;
});

server.listen(8083, () => {
  console.log('服务器已启动');
});
// 模拟客户端
const client = net.connect({
      port: 8083
    }, ()=> { 
      console.log('发送信息给服务端!!!');
      client.write('你好鸭!\r\n');
 });

client.on('data', function(data) {
  console.log(`接收到数据${data}`);
});

ОС (операционная система)

Модуль os предоставляет служебные методы и свойства, связанные с операционной системой.

Его можно использовать для мониторинга и анализа производительности системного сервера, а предоставляемый API также очень мощный.

const sysConfig=os.cpus();

Данные, возвращаемые sysConfig, выглядят следующим образом:

  • скорость в мегагерцах.
  • times
  • user Количество миллисекунд, в течение которых ЦП находится в пользовательском режиме.
  • nice Количество миллисекунд, в течение которых ЦП находится в хорошем режиме.
  • sys Количество миллисекунд, в течение которых ЦП находится в системном режиме.
  • Количество миллисекунд, в течение которых бездействующий ЦП находится в режиме ожидания.
  • irq Количество миллисекунд, в течение которых ЦП находится в режиме запроса прерывания.
  • perf_hooks (хуки производительности)

    Целью этого API является поддержка сбора высокоточных показателей производительности узла, сохранение и получение данных измерений, связанных с производительностью.

    Его также можно использовать для анализа производительности системного сервера (например, нормально ли работает текущая служба узла, особенно в SSR, на что нужно обратить внимание)

    процесс

    Объект процесса — это глобальная переменная, которая предоставляет информацию о текущем процессе Node.js и управляет им.

    Его также можно использовать для мониторинга и анализа службы узла (например, нормально ли работает текущая служба узла, при каких обстоятельствах она прерывается и какова причина прерывания).

    вм (виртуальная машина)

    Модуль vm компилирует и запускает код в контексте виртуальной машины V8. Например, когда вы обновляете вопрос онлайн, вы можете использовать vm для создания виртуальной машины для выполнения соответствующего кода в коде, отправленном внешним интерфейсом.

    zlib (сжатый)

    Сжатие файлов или распаковка файлов

    Вышеупомянутые части являются одними из наиболее практичных функций, предоставляемых узлом.Я думаю, что требуется время, чтобы понять их, а затем, когда вы столкнетесь с похожими потребностями, вы, естественно, придумаете решения.

    Достаточно потратить больше времени на размышления о том, для каких сценариев можно использовать каждый API, какие потребности он может выполнять и что он может создать. Я полагаю, что после прочтения этого вы больше не будете говорить, что Node.js — это просто.

    Способность лучше других понимать сценарий применения технологии — это начало разрыва между вами и другими.

    Эта статья здесь, следующая продолжается!

В этой статье используетсяmdniceнабор текста