как запустить угловое 6 приложение с nodejs api на производстве? - PullRequest
0 голосов
/ 01 ноября 2018

Привет, я новичок в angular6

В режиме разработки в своей работе я работал с угловым портом 4200 и узлом в другом порту (8080). но теперь я хочу перевести мое приложение в рабочий режим. для этого я построил свой угловой проект с помощью команды ng build. после того, как я получаю папку dist в корневой папке.

поэтому я пошел в файл server.js здесь я должен был добавить свой статический файл

app.use(express.static(path.join(__dirname,'dist/MDProject')));

app.use('/',(req,res)=>{

    res.sendFile(path.join(__dirname,'dist/MDProject/index.html'))
});

нажмите здесь, чтобы прочитать мой server.js file

этим когда я перенаправляю на свой локальный хост, он открывается, но на стороне server.js я не получил никакого ответа.

когда я пытаюсь войти в систему, я получаю эту ошибку. enter image description here

Может кто-нибудь помочь мне решить эту проблему

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

после того, как я удалил эту строку в моем файле server.js

app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

и я вставляю эту строку перед созданием порта.

app.use(express.static(path.join(__dirname,'dist/MDProject')));

app.use('/',(req,res)=>{

    res.sendFile(path.join(__dirname,'dist/MDProject/index.html'))
});

теперь работает нормально.

0 голосов
/ 02 ноября 2018

Используйте это, чтобы перейти на страницу индекса.

app.get('*', (req, res) => {
 res.sendfile('./public/MDProject/index.html');
})

с этим вы должны сделать папку публичной в узле

app.use('/', express.static('/dist/MDProject'))

Затем в папке dist вашего приложения -> index.html

<base href="http://192.168.1.1:3000/admin-panel/">

Это мой рабочий код. Дайте мне знать, если у вас все еще есть проблемы. :)

0 голосов
/ 01 ноября 2018

Я думаю, что в вашем коде есть две ошибки.

Сначала обновите ваш код

С: -

app.use('/',(req,res)=>{

    res.sendFile(path.join(__dirname,'dist/MDProject/index.html'))
});    

Кому: - Этот код необходимо добавить непосредственно перед вашим app.listen(app.get('port')) кодом

app.get('*', function(req, res) {
     res.sendfile('./public/MDProject/index.html'); 
     // load the single view file (angular will handle the page changes on the front-end)
});

Во-вторых, подайте ваш файл из папки public (в вашем случае я думаю, что это папка dist). Поэтому обновите свой код следующим образом.

app.use(express.static(__dirname + '/dist/MDProject'));
...