De um modo geral, o servidor deve ter respostas diferentes para diferentes solicitações de URL. Precisamos fornecer o URL solicitado e outros parâmetros GET e POST necessários para a rota e, em seguida, a rota precisa executar o código correspondente com base nesses dados. Todos os dados de que precisamos estão incluídos no objeto Solicitação, que é passado como o primeiro parâmetro da função de retorno de chamada onRequest (). Para analisar esses dados, os módulos adicionais precisam ser chamados, a saber, os módulos URL e consultas.
URL: Isso
O módulo possui utilidades para resolução e análise de URL. Chamada requer ('url') para
use -o.
Os objetos de URL analisados têm alguns ou todos os campos a seguir, dependendo se eles existem ou não na sequência de URL. Quaisquer partes que não estejam na sequência de URL não estarão no objeto analisado. Exemplos são mostrados para o URL
'http: // user: [email protected]: 8080/p/a/t/h? Query = string#hash'
HREF: O URL completo que foi originalmente analisado. Tanto o protocolo quanto o host são mais baixos.
Exemplo: 'http: // user: [email protected]: 8080/p/a/t/h? Query = string#hash'
Protocolo: o protocolo de solicitação, com base inferior.
Exemplo: 'http:'
HOST: A parte do host de baixo número inferior do URL, incluindo informações da porta.
Exemplo: 'host.com:8080'
Auth: a parte da informação de autenticação de um URL.
Exemplo: 'Usuário: Pass'
Nome do host: apenas a parte do nome do host inferior do host do host.
Exemplo: 'host.com'
Porta: a parte do número da porta do host.
Exemplo: '8080'
Nome do caminho: a seção do caminho do URL, que vem após o host e antes da consulta, incluindo a barra inicial, se estiver presente.
Exemplo: '/p/a/t/h'
Pesquisa: a parte 'String de consulta' da URL, incluindo o principal ponto de interrogação.
Exemplo: '? Query = string'
Caminho: Concatenação de Pathname e Pesquisa.
Exemplo: '/p/a/t/h? Query = string'
Consulta: a parte 'params' da sequência de consultas ou um objeto de consulta.
Exemplo: 'query = string' ou {'query': 'string'}
Hash: a parte do 'fragmento' do URL, incluindo o sinal de libra.
Exemplo: '#hash'
Usaremos a injeção de dependência para adicionar o módulo de roteamento de maneira mais vaga. A função que é o destino de roteamento é chamada de manipulador de solicitação. A implementação do manipulador de solicitação exige a criação de um módulo chamado RequestHandlers, que, obviamente, pode ser nomeado outro. E para cada manipulador de solicitação, adicione uma função de espaço reservado e exporte essas funções como métodos de módulo, para que o manipulador de solicitação e o módulo de roteamento possam ser conectados à rota, para que a rota possa ser seguida.
Observa -se particularmente que uma série de manipuladores de solicitação precisa ser passada através de um objeto aqui, e o objeto precisa ser injetado na função rota () usando um método vagamente acoplado.
Podemos obter a função de manuseio de solicitações do objeto passado da mesma maneira que obter elementos da matriz associativa, por isso temos uma expressão concisa e suave como o identificador [PathName] ();. O código se parece com o seguinte:
var handle = {} handle ["/"] = requestHandlers.start; handle ["/start"] = requestHandlers.start; handle ["/upload"] = requestHandlers.upload;