Prefácio
Se não aprendermos o NodeJS, ficaremos antigos ... quando a onda HTML5 atingiu, muitos ancestrais iniciaram sua jornada de Nodejs e, naquele momento, eu ainda estava trabalhando em programas do lado do servidor.
Mais tarde, mudei para o front-end, e a distância entre ele e o escalão já era muito grande. Como eu conhecia o idioma do lado do servidor e trabalhei por um longo tempo, só comecei a aprender NodeJs e a seguir em direção ao front-end completo.
Desta vez, o plano de aprender NodeJS é:
① Aprenda conhecimento básico em 1-2 semanas
② Desenvolvimento de um projeto simples em cerca de 1 semana
③ Use o NodeJS para desenvolver um conjunto de ferramentas para depuração móvel
④ Relacionado com embalagens (isso pode estar longe)
Recursos de nodejs
① Assíncrono
Os NodeJs são todos concluídos de forma assíncrona, desde a leitura de arquivos até as solicitações de rede, e as funções de retorno de chamada desempenham um papel importante. O nó é o modelo de programa líder
② Retorno de chamada do evento
Os retornos de chamada do evento tornam o programa leve, mas a especificidade depende do programador. No entanto, a função de retorno de chamada é realmente muito difícil de ler.
③ Único rosqueado
O nó é um único thread. Se for multithread, esse idioma será mais profundo. É muito irritante fazer algumas perguntas sobre a comunicação no processo, mas o tópico não tem impasse ou outros problemas.
Mas há problemas com a relação de desempenho, porque o número multi-core não pode ser usado;
Mecanismo de módulo/Commonjs
Costumávamos fazer o desenvolvimento do lado do servidor. Se não tivéssemos um bom código organizacional, seria muito difícil manter mais adiante, então qual arquitetura MVC e três camadas estarão lá?
Agora, a lógica de negócios do front-end está gradualmente se aproximando do back-end. Quanto aos aplicativos de página única, ele excedeu a lógica do programa do back-end.
O aumento contínuo nas visualizações de página levará a um aumento na quantidade de código JS. Como gerenciar bem nosso código de front-end bem se tornou um problema, então requerjs aparece ...
PS: caramba, esse período tem um relacionamento de dez centavos com o NodeJS ...
O JavaScript não possui um sistema modular; portanto, a CommonJS propôs dar à JS a base para o desenvolvimento de aplicações em larga escala.
Referência do módulo
Se queremos fazer referência a um módulo, como o cálculo matemático relacionado:
var matemática = requer ('matemática');
Definição do módulo
Se queremos definir nosso próprio módulo, podemos fazer isso
A cópia do código é a seguinte:
exports.add = function () {
soma de retorno;
}
Se esta função for definida em matemática, ela pode ser usada
math.add ();
ID do módulo
O identificador do módulo é o parâmetro passado para exigir. Ele precisa ser nomeado para o camelo e aponta para um caminho de arquivo. É muito semelhante a requerjs aqui.
Implementação do módulo
A implementação do módulo do nó é dividida em duas categorias: uma é o módulo Core no nível do sistema e o outro é o módulo de arquivo escrito pelos usuários.
O módulo principal é traduzido em um arquivo binário durante o processo de compilação. Após o início do processo do nó, alguns módulos principais serão carregados diretamente na memória (localização do arquivo, compilação e execução)
O módulo de arquivo precisa ser carregado dinamicamente e a velocidade é relativamente lenta.
No entanto, uma vez carregados, esses arquivos serão armazenados em cache e os arquivos em cache (arquivos compilados) serão lidos quando importados novamente (arquivos compilados)
Vamos falar um pouco mais aqui. Quando usamos o sublinhamento, compilaremos o HTML para formar uma função de modelo (é realmente apenas uma função). De fato, isso pode ser armazenado em cache.
Salve as funções compiladas antes de implantar o projeto e remover o arquivo de modelo HTML (não conheço o efeito de otimização)
No nó, cada módulo é um objeto:
A cópia do código é a seguinte:
Módulo de função (id, pai) {
this.id = id;
this.exports = {};
// pai é uma palavra -chave, não deve ser usada aleatoriamente
this.parent = pai;
if (parent && parent.children) {
parent.children.push (this);
}
this.filename = null;
this.loaded = false;
this.Children = [];
}
A última etapa da introdução do módulo de arquivo durante a compilação e execução. Depois de localizar o arquivo específico, o Node criará um novo objeto de módulo e, em seguida, carregará e compilará de acordo com o caminho.
Cada módulo compilado com sucesso cache seu caminho de arquivo como um índice no módulo._cache
Cada arquivo do módulo possui três variáveis: exigir, exportações e módulo, mas elas não são definidas no arquivo (as variáveis __filename__ e __dirname__ também são).
De fato, durante o processo de compilação, o nó envolve o conteúdo do arquivo JavaScript Head and Tail (equivalente a passar uma função personalizada para a janela)
A cópia do código é a seguinte:
(função (exporta, requer, módulo, __filename__, __dirname__) {
var matemática = requer ('matemática');
exports.area = função (raio) {
retornar '';
};
});
Dessa maneira, o módulo é isolado e não afetará um ao outro. É um pouco semelhante à compilação de sublinhado ...
Pacote e npm
O Node organiza seus próprios módulos principais, para que os módulos de arquivo de terceiros possam ser escritos e usados de maneira ordenada, mas em módulos de terceiros, os módulos ainda são hash em vários lugares.
Não pode ser referenciado diretamente entre si. Na terceirização do módulo e NPM são um mecanismo para estabelecer conexões.
PS: Muitos módulos formarão um pacote. O conceito deste pacote é semelhante ao do pacote Java.
Após a descompressão de uma estrutura de pacote, vários arquivos serão formados:
① Package.json Descrição Arquivo
② Diretório binário executável de bin
③ Lib JavaScript Code Directory
④ Documentação do documento (deslumbrante basicamente não existe)
⑤ Demoção de teste
O exposto acima são algumas das especificações do pacote Commonjs, mas podemos aprender um pouco (iniciantes), e o NPM precisa ser proficiente nele. Com a ajuda do NPM, podemos ser proficientes na instalação de pacotes de gerenciamento.
Instale o pacote de dependência
Instalar pacotes de dependência é um método comum:
NPM Install Express
Após a execução, o diretório Node_modules será criado no diretório atual e, em seguida, o diretório Express será criado abaixo dele ...
PS: Express é uma estrutura popular de desenvolvimento da web no NodeJS, ajudando -nos a desenvolver rapidamente um aplicativo da web
Após a conclusão da instalação, ela pode ser chamada:
A cópia do código é a seguinte:
var express = requer ('expresso');
Conclusão
Esta seção acabou e o processo de combate real do nosso projeto se aprofundará gradualmente.