使用共同的Node.js服务器(渲染)运行多个Angular 4应用程序

3
如何设置渲染索引文件前端(angular-4 cli)和后端(angular-4 cli),以管理两个angular应用程序。
2个回答

0

在你的Express Node.js中设置Access-Control-Allow-Origin

app.use(function(req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT,DELETE");
    res.set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
    res.set('Access-Control-Allow-Credentials', 'true');
    next();
});

0
将以下代码放置在你的node端的server.js文件中,从angular端路由文件中管理路由,即定义路径,例如"admin/userdetails",这是我的server.js文件。
    var express = require('express');
    var app = express();
    var path = require('path');
    var config = require('./server/config/db');
    var bodyParser = require('body-parser');

    app.use(bodyParser.json());

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

    app.use(bodyParser.json({limit: '16mb'}));

    /*
        allow cross origin requests
    */
    app.use(function(req, res, next) {
        res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, 
        DELETE, GET");
        res.header("Access-Control-Allow-Origin", 
        "http://localhost:3000");
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-
        With, Content-Type, Accept");
        res.header("Access-Control-Allow-Credentials", true);
        next();
    });
     /*
        FOR API ROUTES 
     */
    app.use('/', require('./server/routes/api'));
    /*
    FOR INDEX FILE PATH 
    */
    app.use('/root', express.static(path.join(__dirname, '/')));  
    app.use('/backDist',express.static(path.join(__dirname,
    '/admin/dist/')));    
    app.use('/dist',express.static(path.join(__dirname,'/client/dist/')));
    /*
        FOR GET IMAGE PATH 
    */
    app.use('/image',express.static(__dirname+'/admin/src/uploads'));
    /*
      FOR GET ROOT PATH 
    */ 
    app.get('/', function (req, res, err) {
      res.sendFile(path.join(__dirname+'/client/dist','index.html'))
    });
    app.get('/admin/*', function (req, res) {  
      res.sendFile(path.join(__dirname+'/admin/dist','index.html'))
    });
    app.get('/admin', function (req, res) { 
      res.sendFile(path.join(__dirname+'/admin/dist','index.html'))
    });
    /*
       FOR CONNECTION STATUS 
    */
    app.use(function(req, res, next) {  
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
    });

/*
    FOR SET CONNECTION PORT 
*/
app.listen(3000, function () {
console.log('Example listening on port 3000!');
});

module.exports = app; 

如果您将为不同的应用程序开发管理面板和前端,则肯定会使用它来管理访问两个应用程序的路径,从而实现同时访问。 - Ketan Chaudhari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接