Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Routes do Angular2 não acessa /login

Realizei o curso de MEAN utilizando o AluraPic do Angular2

E fiquei com dúvida de como o Route funciona.

Mapeei no app.route.ts

{ path: 'login', component: LoginComponent },

adicionei no app.module.ts

declarations: [ ..., LoginComponent ],

Então quando eu acesso /login ele diz Cannot GET /login

Porém se crio um botão na navbar ou altero o ponto de entrada ele exibe.

Então testei também com o /cadastro, vi que ele se comporta igual, pela navegação acesso, porém pela barra de endereço não.

Tem alguma configuração para fazer no server ou client para que consiga acessar dessa forma?

2 respostas

Se você recebe cannot get login é porque seu browser esta buscando diretamente do servidor. Isso significa que o Angular não reconhece como uma rota válida. Não faço ideia do que esta ocasionando isso no seu projeto.

Tem mais informações?

solução!

Sim, descobri o que é.

Primeiro imaginei que não fosse algo do angular, pois quando você acessa a primeira requisição é feita no servidor.

Com isso em mente comecei a comparar o server que fizemos no MEAN com o server que foi nos fornecido no Angular2 e percebi algumas diferenças.

1 - no express.js temos a linha abaixo que não sei o que faz e não foi ele que resolveu p problema

app.use(bodyParser.urlencoded({extended: true}));

2 - ele aponta para o routes.js e entrando nele temos o trecho abaixo que foi resolveu o problema. Ficou faltando ele

app.all('/*', function(req, res) {
    res.sendFile(path.join(app.get('clientPath'), 'index.html'));
});

Por ser uma rota geral deixei no próprio express.js ao invés de criar um arquivo só para ele