结合Angular 2应用服务器和REST服务器模块

时间:2018-09-04 09:23:25

标签: javascript node.js angular

我正在创建一个新的Angular 4应用程序。我遵循了官方教程https://angular.io/tutorial/

使用ng serve命令启动应用程序服务器。

我创建了一个单独的节点js(+ express)服务器,该服务器在其他端口上为主应用程序提供REST服务。

是否可以通过同一nodejs / express服务器为主要的角度应用程序提供服务,因此我不必为该应用程序使用两个服务器?

我使用过打字稿,如果我理解正确的话,则需要以某种方式将其编译为纯javascript,然后再通过nodejs进行静态投放?

1 个答案:

答案 0 :(得分:0)

当然,只需使用ng build并提供已构建应用程序的dist文件夹,甚至是src。示例:

const staticFor = rel => express.static(path.resolve(__dirname, rel));
const app = express();
if (!config.production) {
    app.use('/node_modules', staticFor('../node_modules'));
    // In development we do not copy the files over, so map used path
}

app.use('/', staticFor('../dist/app'));
const appPath = path.resolve(
    __dirname,
    config.production ? '../dist/app/index.html' : '../src/app/index.html'
);

app.get('/yourAppPath/*', (req, res) => {
    const markup = fs.readFileSync(appPath, 'utf8');
    res.send(markup);
});

不要忘记需要正确的库。