GET http://localhost:4000/rugs 500 (внутренняя ошибка сервера) - PullRequest
1 голос
/ 19 июня 2019

Photo: the list of rugs do not appear

Я пытаюсь создать приложение MEAN CRUD.Я не совсем уверен, какой из моих маршрутов выключен, но я не могу связаться с mongodb для отображения данных.Кажется, что отладчик не работает, когда rug-list.component.ts вызывает службу getRugs() в rug.service.ts.(Мне также интересно: должны ли имена путей во внутренних файлах совпадать с именами внешнего интерфейса?)

Любой совет будет высоко ценится.:)

» rug.service.ts (внешний интерфейс)

...

@Injectable({ providedIn: "root" })
export class RugService {
    private uri = 'http://localhost:4000/rugs';

    constructor(private http: HttpClient) { }

    getRugs() {
        return this.http.get(`${this.uri}`);
    }

    getRug(id: number) {
        ...
        return this.http.get(`${this.uri}/${id}`);
    }
    ...
    deleteRug(id: number) {
        return this.http.get(`${this.uri}/${id}/delete`);
    }

   ...
}

» server.js (бэкэнд)


...

app.use('/rugs', rugRoute);

» rug.route.js (бэкэнд)

...

//list
rugRoutes.route('/').get(function (req, res) {
    find(function (err, rugs) {
        if (err) { console.log(err); }
        else { res.json(rugs); }
    });
});

//details
rugRoutes.route('/:id').get(function (req, res) {
    let id = req.params.id;
    findById(id, function (err, rug) {
        res.json(rug);
    });
});

//add
rugRoutes.route('/0/edit').post(function (req, res) {
    let rug = new Rug(req.body);
    rug.save().then(
        () => { res.status(200).json({ 'rug': 'Rug added successfully' }); })
        .catch(err => { res.status(400).send("Unable to save to database"); });
});

» app-routing.module.ts (не уверен, если это необходимо) (внешний интерфейс)

...

const routes: Routes = [
  { path: 'rug-list', component: RugListComponent },
  { path: 'rug-list/:id', component: RugDetailComponent },
  { path: 'rug-list/:id/edit', component: RugEditComponent },
  { path: '**', component: HomeComponent, pathMatch: 'full' },
];

1 Ответ

0 голосов
/ 25 июня 2019

Убедитесь, что «this.http.get / put / post» в файле переднего плана rug.service.ts соответствует «rugRoutes.route (pathname) .get / put / post (...)» ввнутренний файл rug.route.js.

...