首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node服务器上运行angular应用?

如何在node服务器上运行angular应用?
EN

Stack Overflow用户
提问于 2019-05-17 15:17:45
回答 4查看 11.4K关注 0票数 2

你好,我想在节点服务器上使用express运行我的应用程序。

我的server.js:

代码语言:javascript
复制
var express = require('express');
var path = require('path');

var app = express();

app.get('/', (req, res) => {
   res.sendFile(path.resolve('dist/my-app/index.html'))
});

app.listen(80, () => {
  console.log('Server started!')
})

但当我试图在localhost上浏览我的网站时。什么也没出现。你能帮我吗?

EN

回答 4

Stack Overflow用户

发布于 2020-03-06 00:22:23

希望这能对你有所帮助。

1)运行:

代码语言:javascript
复制
ng build --prod

这将创建一个dist文件夹。用于生产。

2)运行:

代码语言:javascript
复制
npm install --save express

安装express并将其另存为项目中的依赖项。

3)在root目录下创建文件:./server.js

4)复制此代码。别忘了修改你的名字project

代码语言:javascript
复制
const express = require('express');
const http = require('http');
const path = require('path');

const app = express();

const port = process.env.PORT || 3001;

app.use(express.static(__dirname + '/dist/my-app-name'));

app.get('/*', (req, res) => res.sendFile(path.join(__dirname)));

const server = http.createServer(app);

server.listen(port, () => console.log(`App running on: http://localhost:${port}`));

5)运行server.js文件

代码语言:javascript
复制
node server.js
票数 10
EN

Stack Overflow用户

发布于 2019-05-17 17:52:03

我找到了一个解决方案!

代码语言:javascript
复制
const express = require('express');
const app = express();
const path = require('path');
const fs = require('fs');

const port = process.env.NODE_PORT || 3000;

const root = path.join(__dirname, 'dist', 'my-app');


app.get('*' ,function(req, res) {
  fs.stat(root + req.path, function(err){
    if(err){
        res.sendFile("index.html", { root });
    }else{
        res.sendFile(req.path, { root });
    }
  })
});

app.listen(port);
console.log('Listening on port '+ port);
票数 2
EN

Stack Overflow用户

发布于 2020-08-18 16:23:18

你只需要很少的步骤就可以做到这一点。

1)。运行ng build --prod (如果预算错误,则根据错误增加angular.json文件中的预算)

2)。执行上述命令后,将生成一个dist文件夹,其中包含您的项目文件夹,将dist文件夹中的项目文件夹从angular项目移动到您的节点项目中,比如在公共文件夹( public / your _build_angular_ project )中。

3)。现在,在您的节点主文件中,例如index.js或app.js,包含以下行

代码语言:javascript
复制
const path = require('path');
app.use('/', express.static(path.join(__dirname, 'public/your_build_angular_project')));

4)。现在为您的节点服务器提供服务,然后当您访问它时,您将运行您的angular项目

希望这能对你或其他人有所帮助!谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56181443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档