Попытка использовать Angular в качестве маршрутизатора, но я получаю ошибку NodeJS Server 'Cannot GET / [что-то]' - PullRequest
0 голосов
/ 20 декабря 2018

Я использую NodeJS / ExpressJS в качестве сервера, но я хочу использовать Angular 7 в качестве маршрутизатора.У меня есть свой скрипт угловой маршрутизации, и он, кажется, работает, потому что, когда я устанавливаю компонент входа в систему для загрузки пути, он загружает компонент на example.com, и если я изменяю путь маршрутизатора с «» на «вход в систему», то имя входакомпонент больше не загружается на example.com

Однако мой скрипт server.js выдает ошибку «Cannot GET /», когда я добавляю что-либо после .com /.

Я установил свой Angular router назагрузить компонент входа в систему, если URL-адрес example.com/login, однако моя ошибка «Cannot GET /login".

Я считаю, что мой скрипт экспресс-сервера использует / login и добавляет его в папку назначения моего каталога, например dist /ngtb / login, когда мне нужно всегда направлять в dist / ngtb независимо от того, какой путь example.com/what_Ever_This_Path_Is, чтобы мое приложение 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 голосов
/ 21 декабря 2018

Путь, используемый в строках .use и .get, должен быть «dist / ngtb /», а не «dist / ngtb», пропущенная косая черта вызвала ошибку Cannot Get, когда что-либо было добавлено в URL-путь.Теперь угловая маршрутизация работает безупречно.

0 голосов
/ 20 декабря 2018

Я не уверен, что я действительно понимаю вашу проблему, но попробуйте обратиться к index.html в вашей папке dist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...