gpt4 book ai didi

node.js - 当 Angular 位于 Node 文件夹内时,MEAN Stack : How do you start Angular from Node,

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:50 25 4
gpt4 key购买 nike

我有一个 MEAN stack 应用程序,我的 Node 安装在一个名为“myApp”的文件夹中。而且,我的 Angular 安装位于“myApp”文件夹中,名为“Angular-src”。这是基础结构。因此,它在我的本地机器上完美运行。对于 Node,我在命令窗口上使用“nodemon”,在另一个命令窗口上使用 Angular 的“ngserve”。

但是,当我在 Heroku 上托管此项目时,我开始遇到问题。我按照说明为 Prod 构建 Angular 应用程序,连接 MongoDB,部署它,当在浏览器中查看时,它表明我的 Node 服务器运行正常。但没有任何 Angular 位运行的迹象。我在网上查了很多,但没有明确的答案。

我认为这与“脚本”部分中的“package.json”文件有关。我有两个“package.json”文件;一个位于 Node 的“myApp”文件夹中,另一个位于“Angular-src”中。详细信息如下:

(1) Node 文件夹中的“package.json” -

{
"name": "-----",
"version": "0.0.0",
"description": "-----",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app"
},
"dependencies": {
"express": "~4.17.1",
"mongoose": "~5.6.0",
"cors": "~2.8.5",
"body-parser": "~1.19.0"
},
"author": "Harsha W. & Sujeewa B.",
"license": "ISC"
}

(2) Angular-src 文件夹中的“package.json”(长文件被截断)-

{
"name": "angular-src",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "node server.js",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"heroku-postbuild": "ng build --prod",
"e2e": "ng e2e"
},
"private": true,
"dependencies": { ...

(3) Node 文件夹中的我的 app.js -

const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const bodyParser = require('body-parser');
const dbConfig = require('./config/database');
const http = require('http');
const fs = require('fs');

// Connecting with mongo db
mongoose.Promise = global.Promise;

mongoose.connect(dbConfig.database, {
useNewUrlParser: true
}).then(() => {
console.log('Database sucessfully connected')
},
error => {
console.log('Database could not connected: ' + error)
}
)
mongoose.set('useFindAndModify', false);

// Setting up port with express js
const coursesRoute = require('./controllers/courses.route');
/** other routes I have removed to unclutter the code **/

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));

app.use(cors())

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

app.get('/', (req, res) => {
res.send("Hello HTTPS!")
})

// port
const port = process.env.PORT || 3000;

http.createServer(app).listen( port, () => {
console.log('Listening on port ' + port);
});

**我需要知道的是当我的文件夹结构如上所示时如何从我的 Node 提供 Angular。

最佳答案

我认为您正在将源代码部署到heroku而不是构建版本。现在,您的 Angular 服务器在开发中时在 4200 上运行,但一旦将其部署在 Heroku 上。您将只有一个端口可供使用(由 heroku 分配)。

构建 Angular 应用程序的命令是 ng build 但不要只是去运行这个命令(阅读相关内容)。这将获取您的所有组件并在一个文件夹中构建几个文件,这些文件类似于 HTML 文件,您可以依次部署这些文件。

了解Deploying Angular App 。 youtube 上有各种教程,您可以在其中找到如何在云上部署 MEAN stack 应用程序。

关于node.js - 当 Angular 位于 Node 文件夹内时,MEAN Stack : How do you start Angular from Node,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58287372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com