如何使用Angular和Express为两个Separated项目设置路由?

时间:2017-06-15 06:34:19

标签: angular express mean-stack

我正在尝试将项目前端和后端分开。 一个是用angular-cli构建的,另一个是用express构建的。

我知道我应该在dist文件夹中加载index.html,例如app.use(express.static('../../frontend/dist'));

如果我访问mydomain.com,那么它可以正常工作。 但是,当我尝试通过输入访问浏览器地址栏上的mydomain.com/signin时,它会显示can not get /signin

我想这是因为我在分离前端和后端项目的过程中犯了一个错误。

我确实喜欢下面的内容,但我认为我需要做点什么才能解决这个问题。 我认为app.use(express.static('../../frontend/dist'));足以路由,但无法设置路由。

我认为这不适合我的情况。

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

例如,

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

我想我无法渲染,因为我把它分成了两个项目。

这就是我使用此代码的原因。 app.use(express.static('../../frontend/dist'));

如何在我的案例中设置路由?

1 个答案:

答案 0 :(得分:0)

我在下面解决了。 这是因为我不太了解。 我知道这是一个初学者的问题,但对于像我这样的其他初学者,请发表我的回答。

首先,安装路径npm包。 npm install path --save

其次,添加var path = require('path');

第三,添加app.use(express.static(path.join(__dirname, 'your path/dist')));

最后,添加

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

这很简单。 我希望有人在我的回答中得到解决方案。 :d