tomastrajan / angular-ngrx-material-starter

Angular, NgRx, Angular CLI & Angular Material Starter Project
https://tomastrajan.github.io/angular-ngrx-material-starter
MIT License
2.82k stars 919 forks source link

Angular Universal :ssr show ERROR TypeError: Cannot read property 'settings' of undefined #525

Closed nobaddy closed 4 years ago

nobaddy commented 4 years ago

i had tried many methods . then i downloaded new repository and run still show this error, i don't know what to do soo please help ,thankyou

npm run build:ssr && npm run serve:ssr

angular-ngrx-material-starter@9.0.1 serve:ssr /home/floki/new-project node dist/angular-ngrx-material-starter/server/main.js

Node Express server listening on http://localhost:4000 ERROR TypeError: Cannot read property 'settings' of undefined at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5347058 at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345914 at Array.map () at defaultStateFn (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345906) at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5346614 at memoized (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345222) at MapSubscriber.project (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5344517) at MapSubscriber._next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:3215112) at MapSubscriber.next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:985772) at State._subscribe (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:1143970) ERROR TypeError: Cannot read property 'settings' of undefined at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5347058 at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345914 at Array.map () at defaultStateFn (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345906) at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5346614 at memoized (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345222) at MapSubscriber.project (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5344517) at MapSubscriber._next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:3215112) at MapSubscriber.next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:985772) at State._subscribe (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:1143970) ERROR TypeError: Cannot read property 'settings' of undefined at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5347058 at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345914 at Array.map () at defaultStateFn (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345906) at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5346614 at memoized (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345222) at MapSubscriber.project (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5344517) at MapSubscriber._next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:3215112) at MapSubscriber.next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:985772) at State._subscribe (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:1143970) ERROR TypeError: Cannot read property 'settings' of undefined at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5347058 at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345914 at Array.map () at defaultStateFn (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345906) at /home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5346614 at memoized (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5345222) at MapSubscriber.project (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:5344517) at MapSubscriber._next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:3215112) at MapSubscriber.next (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:985772) at State._subscribe (/home/floki/new-project/dist/angular-ngrx-material-starter/server/main.js:1:1143970)

nobaddy commented 4 years ago

Or Is there any other way for server side rendering baside (angular universal) for SEO

tomastrajan commented 4 years ago

Hi @nobaddy !

The error seems to be with some object which is missing where we try to access some value on it,

the code in question can be made more robust by using if () or even new obj?.prop, besides that, you might need to provide some default values for these properties for it to make sense, as settings may decide language, theme etc... which will then need to be used during SSR so you propabbly have to go with some defaults. (as settings are then stored during runtime in browser local storage which is not available on the server)

Hope that helps!

Cheers