Angular Универсальное приложение SSR CRUD: NullInjectorError: StaticInjectorError (AppServerModule) [router_RouterOutlet -> ChildrenOutletContexts]: - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю над приложением CRUD для Angular Universal с рендерингом на стороне сервера, используя MongoDB. Я уже делал несколько простых одностраничных вещей Angular с формами и проверками, но это мой первый опыт использования универсального приложения Angular с базой данных.

Вот статистика по моей angular версии, используемые пакеты и т. Д. c. Примечательно, что я пользуюсь Macbook, и у меня было много проблем с Angular, который сначала корректно устанавливался. Я использовал менеджер пакетов homebrew, чтобы заставить его работать.

Angular CLI: 8.3.26
Node: 12.13.1
OS: darwin x64
Angular: 8.2.14

Package                                    Version
--------------------------------------------------------------------
@angular-devkit/architect                  0.803.26
@angular-devkit/build-angular              0.803.26
@angular-devkit/build-optimizer            0.803.26
@angular-devkit/build-webpack              0.803.26
@angular-devkit/core                       8.3.26
@angular-devkit/schematics                 8.3.26
@angular/cdk                               8.2.3
@angular/cli                               8.3.26
@angular/material                          8.2.3
@ngtools/webpack                           8.3.26
@nguniversal/express-engine                8.2.6
@nguniversal/module-map-ngfactory-loader   8.2.6
@schematics/angular                        8.3.26
@schematics/update                         0.803.26
rxjs                                       6.4.0
typescript                                 3.5.3
webpack                                    4.39.2

Я могу заставить его скомпилироваться нормально, используя команду CLI npm run build:ssr && npm run serve:ssr

Когда я открываю http://localhost: 4000 / , отображается страница это:

  StaticInjectorError(Platform: core)[router_RouterOutlet -> ChildrenOutletContexts]: 
    NullInjectorError: No provider for ChildrenOutletContexts!
    at NullInjector.get (/Users/dominickdufner/music-app/dist/server/main.js:41980:27)
    at resolveToken (/Users/dominickdufner/music-app/dist/server/main.js:56898:24)
    at tryResolveToken (/Users/dominickdufner/music-app/dist/server/main.js:56824:16)
    at StaticInjector.get (/Users/dominickdufner/music-app/dist/server/main.js:56674:20)
    at resolveToken (/Users/dominickdufner/music-app/dist/server/main.js:56898:24)
    at tryResolveToken (/Users/dominickdufner/music-app/dist/server/main.js:56824:16)
    at StaticInjector.get (/Users/dominickdufner/music-app/dist/server/main.js:56674:20)
    at resolveNgModuleDep (/Users/dominickdufner/music-app/dist/server/main.js:67861:29)
    at NgModuleRef_.get (/Users/dominickdufner/music-app/dist/server/main.js:68927:16)
    at resolveDep (/Users/dominickdufner/music-app/dist/server/main.js:69458:45)
    at createClass (/Users/dominickdufner/music-app/dist/server/main.js:69311:32)
    at createDirectiveInstance (/Users/dominickdufner/music-app/dist/server/main.js:69122:22)
    at createViewNodes (/Users/dominickdufner/music-app/dist/server/main.js:80402:38)
    at callViewAction (/Users/dominickdufner/music-app/dist/server/main.js:80852:13)
    at execComponentViewsAction (/Users/dominickdufner/music-app/dist/server/main.js:80757:13)
    at createViewNodes (/Users/dominickdufner/music-app/dist/server/main.js:80431:5)

Моя ошибка командной строки также имеет это в конце:

  ngTempTokenPath: null,
  ngTokenPath: [ 'router_RouterOutlet', [Function: ChildrenOutletContexts] ]

Вывод консоли браузера дает мне это: "Политика безопасности содержимого: страница Настройки заблокировали загрузку ресурса в http://localhost: 4000 / favicon.ico («default-src»). "

Я пробовал @ NgModule импортирует: [RouterModule.for Root (маршруты)] , упомянутый в этом посте в моем файле app.module.ts, но он не работает.

Я могу добавить дополнительную информацию о файле по запросу, или вы можете проверить мое репозиторий GitHub: https://github.com/DDufner/Angular-Music-App

К сожалению, я не могу опубликовать информацию о переходе из-за необходимости войдите, чтобы увидеть это. Если есть какая-либо информация, которая может быть полезна, я могу опубликовать ее позже.

Заранее спасибо.

1 Ответ

0 голосов
/ 15 апреля 2020

У вас нет конфигурации маршрута, поэтому в вашем app-routing.module.ts сделайте это так

@NgModule({
  declarations: [],
  imports: [
    CommonModule,
    RouterModule.forRoot(routes)
  ]
})
export class AppRoutingModule { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...