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

时间:2019-05-17 07:17:45

标签: node.js angular express

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

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

4 个答案:

答案 0 :(得分:8)

希望这会对您有所帮助。

1)运行:

ng build --prod

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

2)运行:

npm install --save express

要安装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 文件

node server.js

答案 1 :(得分:0)

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)

    {
   “name”: “myApp”,
   “version”: “0.0.1”,
   “description”: “My Project”,
   “dependencies”: {
        “express”: “*”
    },
   “engine”: “node >=0.6.x”,
   “scripts”: {
         “start”: “node server.js”
    },
   “main”: “server.js”,
   “repository”: {
        “type”: “git”,
        “url”: “”
    },
   “author”: “myApp”,
   “license”: “myApp”,
   “bugs”: {
        “url”: “”
    },
   “homepage”: “/”
}

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

var express = require(‘express’);
var app = express();
app.use(express.static(“myApp”)); // myApp will be the same folder name.
app.get(‘/’, function (req, res,next) {
 res.redirect(‘/’); 
});
app.listen(8080, ‘localhost’);
console.log(“MyProject Server is Listening on port 8080”);

导航到package.json文件后运行commnad“ npm install”。

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

答案 2 :(得分:0)

我找到了解决方案!

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

答案 3 :(得分:0)

您只需几个步骤即可完成操作...

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

2)。执行上述命令后,将生成一个包含您的项目文件夹的dist文件夹,将dist文件夹中存在的该项目文件夹从angular项目移到您的节点项目中,例如在公共文件夹(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)。现在为您的节点服务器提供服务,然后在您单击它时,将使您的角度项目运行

希望这对您或其他人有帮助!谢谢。