首页 > 解决方案 > 使用nodejs将角度部署到heroku

问题描述

我在将项目发送到 heroku 时遇到问题

认为我没有问题,但是当我尝试连接时,我只看到你好,并且在 heroku 日志中 - - 我得到所有请求状态:200

索引.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Myapp</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <p>hello</p>
  <app-root></app-root>
</body>
</html>

在这里它只打印文件中屏幕上的你好,而不是继续到应用程序根目录

服务器.js

const express = require('express')
const path = require('path')
require('../mongoose/db/database')
const Menu = require('../mongoose/model/menu')
const app = express()

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname + '/dist/my-pizza-app')))


app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, POST, PATCH, DELETE, OPTIONS"
  );
  next();
});

app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname,'../', 'index.html'));

});

app.get('/meals', async (req,res) =>{
  try{
  const menu = await Menu.find({})
  if(!menu){
     return res.status(400).send()
  }
  res.status(201).send(menu)
  console.log(menu)

} catch(e) {
  res.status(500).send(e)
  console.log(e)
}
})

module.exports = app

包.json

{
  "name": "my-[enter image description here][1]app",
  "version": "0.0.0",
  "main": "src/server/app.js",
  "scripts": {
    "ng": "ng",
    "start": "node src/server/app.js",
    "build": "ng build",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "dev": "nodemon src/server/app.js"
  },
  "engines": {
    "node": "~12.4.0",
    "npm": "~6.9.0"
  }
}

我到处搜索,找不到解决方案

标签: node.jsangularheroku

解决方案


推荐阅读