Node.js 如何在节点服务器上运行angular应用程序?

Node.js 如何在节点服务器上运行angular应用程序?,node.js,angular,express,Node.js,Angular,Express,您好,我想在节点服务器上使用express运行我的应用程序 My server.js: 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, () => {

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

My server.js:

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
上查看我的网站时。什么也没有出现。你能帮我吗?

示例angularjs应用程序目录如下:

AngularApp->myApp->
AngularApp->myApp->controllers
AngularApp->myApp->views
AngularApp->myApp->services
AngularApp->myApp->app.js
AngularApp->myApp->index.html
创建package.json文件并在其中插入以下代码:

(位置:AngularApp->package.json)

创建server.js: (位置:AngularApp->server.js)

导航到package.json文件后运行commnad'npm install'

运行命令“npm start”。打开浏览器,点击localhost:8080/

我找到了一个解决方案

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);

希望这对你有帮助

1) 运行:

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

2) 运行:

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

3) 在根目录中创建文件:./server.js

4) 复制此代码。别忘了用你的名字修改这个项目

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文件


你只需几步就可以做到这一点

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

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

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

const path = require('path');
app.use('/', express.static(path.join(__dirname, 'public/your_build_angular_project')));
4) 。现在为您的节点服务器服务,当您点击它时,您将运行您的angular项目

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

(1)您在
res.sendFile(path.resolve('dist/my-app/index.html'))中遇到任何错误。
。。。(2) 另外,当您在浏览器中执行
localhost:[80]/
操作时,您会看到什么?(3) 尝试更改应用程序的端口。请收听8080而不是80
ng build --prod
npm install --save express
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}`));
node server.js
const path = require('path');
app.use('/', express.static(path.join(__dirname, 'public/your_build_angular_project')));