尝试将Angular用作路由器,但出现NodeJS服务器“无法获取/ [某物]”错误

时间:2018-12-20 04:22:23

标签: node.js express angular7

我将NodeJS / ExpressJS用作服务器,但我想将Angular 7用作路由器。我已经安装了Angular路由脚本,并且似乎可以正常工作,因为当我将登录组件设置为加载路径”时,它将在example.com上加载该组件,并且如果我将路由器路径从”更改为“登录”,组件不再加载到example.com

但是,当我在.com /之后添加任何内容时,我的server.js脚本会引发“无法获取/”错误。

我将Angular路由器设置为在URL为example.com/login时加载登录组件,但是我的错误是“无法获取/ login”。

我相信我的快速服务器脚本正在使用/ login并将其添加到目录目标(如dist / ngtb / login)中,而无论路径是example.com/what_Ever_This_Path_Is都是需要始终路由到dist / ngtb的,这样我Angular应用程序已读取并初始化,并且可以进行路由。

const express = require('express');
const http = require('http');
const https = require('https');
const path = require('path');
const fs = require('fs');

const app = express();
const apps = express();

const port = process.hasUncaughtExceptionCaptureCallback.PORT || 80;
const ports = process.hasUncaughtExceptionCaptureCallback.PORT || 443;

var privateKey  = fs.readFileSync('private_key.key', 'utf8');
var certificate = fs.readFileSync('ssl.cer', 'utf8');

var credentials = {
    key: privateKey,
    cert: certificate
};

apps.use(express.static(__dirname + '/dist/ngtb'));

app.get('*', (req, res) => res.redirect('https://' + req.headers.host + req.url));
apps.get('/*', (req, res) => res.sendFile(path.join(__dirname + '/dist/ngtb')));

const serverhttp = http.createServer(app);
const serverhttps = https.createServer(credentials, apps);

serverhttp.listen(port);
serverhttps.listen(ports);

2 个答案:

答案 0 :(得分:0)

我不确定我是否真的了解您的问题,但是尝试引用dist文件夹中的index.html。

答案 1 :(得分:0)

.use和.get行中使用的路径应为“ dist / ngtb /”,而不是“ dist / ngtb”。当在URL路径中添加任何内容时,缺少的斜杠会导致无法获取错误。现在,角形布线可以完美地工作了。

相关问题