【问题标题】:How to host AngularJS with Node on Heroku如何在 Heroku 上使用 Node 托管 AngularJS
【发布时间】:2019-01-08 21:07:41
【问题描述】:

我正在关注 Heroku 的在 Heroku 上托管应用程序的文档,并且我已在 Heroku 上成功托管了我的 nodejs API,但我无法托管我的 angularJs 代码,因为我的项目中没有 Server.js 文件。

【问题讨论】:

    标签: angularjs node.js heroku


    【解决方案1】:

    你应该有“server.js”和“Procfile”文件。

    https://devcenter.heroku.com/articles/procfile

    将这些推送到 heroku:

    -angular-project 文件夹

    -Procfile

    web: node server.js
    

    -server.js

    'use strict'
    
    var express = require('express');
    
    // App
    var app = express();
    app.set('port', (process.env.PORT || 5000));
    
    // your angular-project folder
    app.use('/', express.static(__dirname + '/angular-project'));
    
    app.listen(app.get('port'), function() {
      console.log("running: port", app.get('port'));
    });
    

    【讨论】:

      【解决方案2】:

      最好的选择是通过 CDN 或 NgInx 提供 Angular。

      如果你想用 nodeJS 提供它,只需添加一个 server.js(或 index.js)文件,代码如下:

      var express     = require('express'),
          feapp       = express(),
          path        = require('path'),
          bodyParser  = require('body-parser'),
          fs          = require('fs'),
          compression = require('compression');
      
      
      //Setup
      feapp.use(compression({ threshold: 0 }));
      feapp.use(express.static(path.join(__dirname, '..' ,'/public') , { maxAge: 3600 } )); //Use Cache-Control for performance
      feapp.use(bodyParser.json());////For parsing application/json
      feapp.use(bodyParser.urlencoded({extended: true}));
      feapp.use(express.static(__dirname));
      
      
      //HTTP server
      http    = require('http'); //Or https - but you will have add SSL certificats
      var FE_HTTP_PORT = 80;
      
      var feServer = http.createServer(feapp);
      feServer.listen(FE_HTTP_PORT, function() {
          console.log('Listening on port ', FE_HTTP_PORT);
      });
      
      
      // Simple Routing
      feapp.get('*', function(req, res){
           res.sendFile(path.join(__dirname, '..' ,'/public', 'index_site.html'));
      });
      
      
      module.exports = feapp;

      【讨论】:

        猜你喜欢
        • 2017-05-15
        • 2018-05-22
        • 2014-12-20
        • 2023-04-02
        • 1970-01-01
        • 2017-03-15
        • 2017-07-08
        • 1970-01-01
        • 2013-02-28
        相关资源
        最近更新 更多