使用angular cli

时间:2017-06-02 20:00:10

标签: node.js angular nginx

我遇到了Nginx,Node Server和Express的问题。我删除了/ etc / nginx / sites-available下的默认服务器块,并添加了我自己的let,称之为mikes-domain.com。我已将dist文件夹的内容复制到/var/www/mikes-domain.com/html。

server {
listen 80 default_server;
root /var/www/mikes-domain.com/html;
index index.html index.htm;
server_name: mikes-domain.com;
location /admin {
proxy_pass http://localhost:8082;
prody_http_version: 1.1;
proxy_set_header Upgrade $http_upgrade;
prody_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

节点和Express服务器文件

const express = require('express');
const path = require('path');
const http = require('http');
const bodyParser = require ('body-parser');
const api = require('./server/routes/api');
const app = express;
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname, 'node_modules')));
app.use(*/api', api);
app.set('trust proxy', true);
app.set('trust proxy', 'loopback');
const port = process.env.PORT || '8082';
http.createServer(app).listen(port);
console.log('Api listening on port ' + port);

当我访问mikes-domain.com/admin/时,我收到了这个不能GET / admin /但是我得到了api的作品!这是我访问mikes-domain.com/admin/api /

时应该显示的快递

1 个答案:

答案 0 :(得分:0)

在nginx配置中,您将所有请求从 mikes-domain.com/admin 传递到 localhost:8082

在节点服务器中: app.use('* / api',api)

您没有在Node(localhost:8082)中配置默认​​路由,因此在这种情况下,Node将不显示任何内容( mikes-domain.com/admin

您可以将路由器配置为使用下面的模板处理/ admin / api /请求,除非Node不显示任何内容。

./服务器/路由/ api.js

var router = express.Router()

// define the home page route
router.get('/', function (req, res) {
  res.send('Testing API')
})