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

Chamando Api Remota

Boa tarde Flávio tudo bom.

Eu optei em montar o projeto cliente inicialmente pela angular-cli como já conversado. Fiz apenas a criação do projeto uma vez que achei mais interessante a forma como lidamos com a construção e por causa do meu aprendizado, entendi melhor assim.

Até ai tudo bem consegui fazer tudo rodar apareceram as fotos etc ... o problema é encontrar a pasta v1/fotos --- api rest (Chamando Api Remota) ... a forma como foi montada em outras aulas do Mean Stcak diferem um pouco do atual projeto.

Outra coisa que estou percebendo é que ao chamar o servidor pelo método htt ao invés do express tem me apresentado problemas.

O que o clientPath faz ?

app.set('clientPath', path.join(__dirname, '../..', 'client'));
console.log(app.get('clientPath'));
app.use(express.static(app.get('clientPath')));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

Não sei se é possível vc gerar rapidamente um projeto pelo angular-cli tentando Chamando Api Remota para me passar as alterações de que devo fazer.

Se não for possível por favor me passe algum tutorial ou vídeo do yutube de como fazer isso, algo similar ao que vc fez(OBS: pode ser em inglês).

Att. Gabriel Velloso.

2 respostas

O clientPath em si não é nada demais.. ele só define essa variável no contexto do express e busca a informação de novo na hora de definir o caminho dos recursos estáticos...

app.set('clientPath', path.join(__dirname, '../..', 'client'));
..

app.use(express.static(app.get('clientPath')));

Agora, em relação ao erro, o que está acontecendo? Quando vc acessa o endereço pelo navegador, localhost:3000/v1/fotos, é retornado o conteúdo correto?

Se estiver sendo retornado, o problema é algo relacionado ao angular, não a app servidora.

PS: sei que não sou flavio :P

solução!

Opa Alberto tudo bom.

Aparentemente deu certo.

A única diferença é que eu precisava colocar depois de cliente a pasta dist onde é gerado o projeto.

pelo localhost:4200 ele aparentemente não puxa os dados, mas quando eu gero o build da certo.

var express = require('express')
    ,app = express()
    ,bodyParser = require('body-parser')
    ,routes = require('../app/routes')
    ,path =  require('path');

// midelware
// app.use(express.static(__dirname+'/../../client/dist'));

 app.set('clientPath', path.join(__dirname, '../..' ,'client/dist'));
 console.log(app.get('clientPath'));
 app.use(express.static(app.get('clientPath')));
 app.use(bodyParser.urlencoded({extended: true}));
 app.use(bodyParser.json());

 routes(app);


module.exports = app;

única alteração.

, 'client/dist'));