Construindo aplicativos Node.js de maneira modular

Hoje, quase todos os serviços ou integrações da Web são feitos no tempo de execução do Node.js. O Node.js é uma plataforma flexível com muito suporte da comunidade. Podemos até criar documentos xlsx, docx ou pdf diretamente do Node.js. Todas as plataformas de nuvem convencionais podem usar o Node.js como idioma de nível 1.

Modular

Ao projetar o Node.js, você pode usar a estrutura node_modules para obter modularidade. Todos os módulos necessários são armazenados no diretório node_modules, e podemos chamar esses módulos em qualquer lugar do código.

E agora, usaremos essa abordagem modular no código do aplicativo. A maioria dos aplicativos que eu vi contém uma pasta lib na qual todos os arquivos JS são armazenados. Esses arquivos js importam áreas relativas usando caminhos relativos.

const db = require ( "../db/")
 const log = require ( "../../logging")

O principal problema desse método é que, quando alteramos o caminho para o arquivo de serviço, o caminho para o banco de dados também deve mudar. Além disso, o formato é ilegível. Estaremos confusos sobre a autenticidade do documento.

Solução

Uma abordagem melhor é projetar o aplicativo como um módulo, como banco de dados, log, erros, etc. Supondo que o nome do aplicativo seja cms, o uso do escopo facilita a representação dos módulos.

require ( "@ cms / db")

Você pode desenvolver módulos separadamente e publicá-los em qualquer servidor NPM (público / privado) e usá-los como qualquer outro módulo.

Se seu aplicativo requer um módulo de log:

npm install --save @ cms / log

Se você não deseja dividir o aplicativo em várias partes, existe outra maneira.

A melhor maneira

Salve os módulos necessários em uma pasta separada. Suponha que haja "@cms". Use uma pasta separada para cada módulo, para que o módulo tenha um package.json separado. Isso pode se tornar um módulo de nó eficaz.

O package.json do módulo será semelhante a este

{
   "name": "@ cms / db",
   "version": "1.0.1", "description": "módulo db para aplicativo CMS", "main": "index.js", "dependences": { " mysql ": " mais recente "}}

Depois que o módulo estiver pronto, você poderá criar alguns scripts. Adicione install.js na pasta "scripts".

deixe fs = require ( 'fs')
 console.log ( 'Criando links simbólicos ...') if (fs.existsSync ( 'node_modules / @ cms')) { console.log ( 'link já existe')} else { let source = '../@cms' console.log ( `criando link para $ {source}`) fs.symlinkSync (fonte, 'node_modules / @ cms', 'junção') console.log ( 'pronto')}

Adicione este script ao pacote principal.json.

{
   "name": "CMSApplication",
   "version": "1.0.1", "description": "Aplicativo CMS de amostra", "main": "index.js", "scripts": { "install": "node scripts / install.js ", " start ": " node index.js "}, " dependências ": { " express ": " latest "}}

Este script será executado sempre que você executar a instalação do npm. Portanto, uma vez que todos os outros módulos do nó estejam definidos e as dependências instaladas, ele criará um link de fora da pasta @cms para os node_modules dentro da pasta @cms. Portanto, quaisquer alterações feitas na pasta externa @cms serão refletidas nos node_modules dentro da pasta.

Você pode ver que instalamos um link simbólico para @cms. Este não é um arquivo de atalho, não é um link físico criado com "ln" no Linux.

Dentro do @cms, você pode ver os módulos que definimos na pasta externa do @cms.

Dessa forma, você obtém modularidade. A pasta "@cms" faz parte do seu código-fonte. Então você pode importar os módulos necessários da maneira normal.

const {logger} = require ( "@ cms / logging") 
logger.info ( "Bem-vindo ao aplicativo CMS")

Quando você deseja que o aplicativo seja executado, execute "npm install" e, em seguida, "npm start".

Essa abordagem ajuda a tornar os aplicativos mais modulares e extensíveis. Bem-vindo ao compartilhar suas opiniões nos comentários.

Acho que você gosta

Origin www.cnblogs.com/xiaobin123/p/12730172.html
Recomendado
Clasificación