【问题标题】:Run multiple angular 4 apps with a common node js server(rendering)使用公共节点 js 服务器运行多个 Angular 4 应用程序(渲染)
【发布时间】:2017-09-27 13:05:56
【问题描述】:

如何设置渲染索引文件前端(angula-4 cli)和后端(angular-4 cli)管理这两个角度应用程序。

【问题讨论】:

    标签: angular express


    【解决方案1】:

    在节点侧的 server.js 中设置此代码,ma​​nage routings 从角度侧路由文件中定义路径,如 "admin/userdetails" strong> 这是我的 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; 
    

    【讨论】:

    • 如果您要为不同的应用程序开发管理面板和应用程序的前端,那么它肯定会用于管理路径以同时访问您的两个应用程序。
    【解决方案2】:

    在您的 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();
    });
    

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 2018-10-03
      • 2018-02-19
      • 1970-01-01
      • 2018-09-10
      • 2019-10-04
      • 2018-08-16
      • 2018-03-21
      相关资源
      最近更新 更多