在Firebase中使用Node Express Server部署Angular 4

时间:2017-10-05 10:00:13

标签: node.js angular firebase

我使用angular cli创建了一个角度为4的项目。

现在我安装express,我的app.js文件是

app.js

const express = require('express')
const app = express()
const bodyParser = require('body-parser');
const path = require('path');
const http = require('http');
const firebase = require("firebase");

app.use(express.static(path.join(__dirname, 'dist')));

var api = require('./server/routes/api');

app.use('/api', api);
app.get('*', (req, res) => {
     res.render(path.join(__dirname, 'index.html'));

});


// Initialize Firebase
// TODO: Replace with your project's customized code snippet
//NOTE : I have replace the credentials
var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
   databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
   storageBucket: "<BUCKET>.appspot.com",
  };
firebase.initializeApp(config);

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

现在如果我跑

npm app.js

我的localhost:3000正在运行,我的angular js dist文件夹显示在浏览器中。

如果我运行localhost:3000 / api我正在接听我的api电话。

现在,如何将其部署到firebase。

我在一个单独的文件夹中尝试了firebase.init,它创建了一组json文件......

仍然不清楚,如何部署(我需要我的服务器文件夹,dist文件夹)与app.js一起复制到firebase应用程序。

希望我很清楚。欢迎向下的人提出正确的推理。

1 个答案:

答案 0 :(得分:1)

我有类似的结构,我拥有的是:
$ firebase登录
$ firebase init hosting
$ firebase init函数

您必须选择一个firebase项目,并且您将拥有如下目录结构:

    • 功能
      • dist(你的内置角项目)
      • node_modules
      • index.js(主要终点)
      • app.js
      • 的package.json
    • public(delete index.html)
    • .firebase.c
    • firebase.json

您需要做三件事,首先是在firebase.json中:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/",
        "function": "your_function_name"
      }
    ]
  }
}

在index.js中:

const express = require('express')
const app = require('/app')
const firebase = require("firebase");


// Initialize Firebase
var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
   databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
   storageBucket: "<BUCKET>.appspot.com",
  };
firebase.initializeApp(config);

exports.your_function_name= functions.https.onRequest(app);

最后你的app.js

const express = require('express')
const bodyParser = require('body-parser');
const path = require('path');
const http = require('http');

app.use(express.static(path.join(__dirname, 'dist')));

var api = require('./server/routes/api');

app.use('/api', api);

module.exports = app;

运行此:
$ firebase服务 - 只有功能,托管
部署
$ firebase deploy