Получение страницы 404 при обновлении страницы с помощью нодального и углового приложения - PullRequest
0 голосов
/ 15 февраля 2019

Я новичок в Angular.Я попытался создать операцию CRUD, используя Nodejs и Angular.Я использую Nodejs и Express для резервного копирования и Angular для внешнего интерфейса.

Когда я перемещаюсь по странице с помощью routerLink, она работает нормально, но когда я перемещаюсь по странице, а затем обновляю страницу, онапоказывает страницу не найдена ошибка.

Я знаю, что там произошло, маршрут не определен в приложении Express, поэтому я обновляю страницу, на которой отображается ошибка 404.

Как мне это сделать с маршрутами Angular и Express?

Вот мой код.

app.js (Сервер)

const express = require('express');
const path = require('path');
const http = require('http');
const bodyParser = require('body-parser');
var app = express();


app.use(bodyParser.urlencoded({extended : false}));
app.use(bodyParser.json());

app.use(express.static(path.join(__dirname,'dist/MEAN-blog')));


app.get('/',(req,res) =>{
    res.sendFile(path.join(__dirname,'dist/MEAN-blog/index.html'));
});

app.post('/register',(req,res) =>{
    var u = new User(req.body);
    u.save();
    res.send(u).status(200);
})


var server  = http.createServer(app);

server.listen(8080,'0.0.0.0',() =>{
    console.log('Server is running on 8080');
})

Вот маршруты угловые

const routes: Routes = [
    {
        path : '',
        component : PostsComponent
    },
    {
        path : 'users',
        component : UsersComponent
    },
    {
        path : 'users/:id',
        component : UsersComponent
    },
    {
        path : 'post/:id',
        component : PostDetailsComponent
    },
    {
        path : 'login',
        component : LoginComponent
    },
    {
        path : 'signup',
        component : SignupComponent
    },

];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Я используюугловой 5

как я могу решить эту проблему?

Спасибо

1 Ответ

0 голосов
/ 15 февраля 2019

Обычно я сначала включаю все мои конечные точки API, а затем в конце добавляю

app.get('*',(req,res) =>{
    res.sendFile(path.join(__dirname,'dist/MEAN-blog/index.html'));
});

Таким образом, любая конечная точка, которая не является /api, возвращает index.html и угловую маршрутизацию.возьму оттуда.

Другой альтернативой является использование SSR, но это своего рода боль.

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