2017-06-15 1 views
0

J'essaie de séparer les projets frontend et backend. Un est construit avec angulaire-cli, l'autre est construit avec express.Comment définir le routage pour deux projets séparés avec Angular et Express?

Je sais que je devrais charger le index.html dans le dossier dist comme, app.use(express.static('../../frontend/dist'));

Si je donne accès à mydomain.com, il fonctionne très bien. Toutefois, lorsque j'essaie d'accéder à mydomain.com/signin dans la barre d'adresse du navigateur en tapant, le message can not get /signin s'affiche. Je suppose que c'est parce que j'ai fait une erreur dans le processus que je séparais les projets avant et arrière.

J'ai fait comme ci-dessous, mais je pense que je dois faire quelque chose pour résoudre ce problème. Je pensais que app.use(express.static('../../frontend/dist')); est suffisant pour acheminer, mais il ne pouvait pas définir le routage.

Je pense que celui-ci n'est pas pour mon cas.

router.get('/', function (req, res, next) { 
    res.render('index');  // I split it into two projects, how can I render it? 
}); 

Par exemple,

app.get('/signin', (req, res, next) => { 
    res.render('something'); 
}) 

Je pense que je ne peux pas rendre parce que je le diviser en deux projets.

C'est pourquoi j'ai utilisé ce code. app.use(express.static('../../frontend/dist'));

Comment définir le routage dans mon cas?

Répondre

0

J'ai résolu comme ci-dessous. C'est parce que je n'ai pas bien compris. Je sais que c'est une question débutant, mais pour les autres débutants comme moi, postez ma réponse.

Commencez par installer le package npm de chemin. npm install path --save

En second lieu, ajouter var path = require('path');

En troisième lieu, ajouter app.use(express.static(path.join(__dirname, 'your path/dist')));

Enfin, ajoutez

app.get('*', (req, res) => { 
     res.sendFile(path.join(__dirname, 'your path/dist/index.html')); 
    }); 

Il était très simple. J'espère que quelqu'un trouvera la solution dans ma réponse. : D