2016-04-11 12 views
0

Ich habe erfolgreich einen Stapel mit diesen Jungs gebaut. Es ist ein Formular, das mit einer Oracle-Datenbank interagiert.Node - Express - Angular, warum lädt JSs nicht?

Jetzt füge ich die Authentifizierung hinzu und fordere sie mit dem Modul "client-oauth2" für nodejs zu einem OAuth2-Server. Dies ist der Code in Node.js:

requireLogin = function (req, res, next) { 
    var uri=ServAuth.code.getUri(); 
    res.redirect(uri); 
}; 

app.get('/auth/callback', function (req, res) { 
     ServAuth.code.getToken(req.url) 
     .then(function (user) { 
       console.log(user); //=> { accessToken: '...', tokenType: 'bearer', ... } 
       user.request({ 
        method: 'get', 
        url: 'https://aut.server.blabla.bla/api/Me' 
       }).then(function (res) { 
        res.body.forEach(function (item){ 
         if (item.Type=="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name") { 
           logged_user=item.Value; 
         } 
        }); 
        }) 
        return res.sendFile(path.resolve(__dirname + '/../public/form.html')); // load the single view file (angular will handle the page changes on the front-end) 
     }); 
}); 


app.use('/form', requireLogin); 

Wenn ich "myserver.bla/form" nennen, ich richtig auf die Anmeldeseite des OAuth2 Server umgeleitet werde; dann melde ich mich an und gewähre den Zugriff. Dann wird die Seite "form.html" geladen, aber ich sehe in der Browser-Konsole den Fehler:

Fehler: [$ Injektor: modulerr] Nicht bestandene Modul NSW_PCB_QC aufgrund instanziiert: [$ Injektor: nomod] Modul 'NSW_PCB_QC' ist nicht verfügbar!

Beachten Sie, dass NSW_PCB_QC der Name der eckigen Anwendung (ng-app = "NSW_PCB_QC") ist.

Aber wenn ich direkt die form.html, unter Umgehung der Authentifizierung, "myserver.bla/form.html" aufrufen, dann werden alle angularen Module korrekt geladen.

Wo ist das Problem?

Vielen Dank im Voraus

+0

können Sie den Inhalt anzeigen von form.html? – ruedamanuel

+0

Hallo @ruedamanuel, und danke für das Betrachten. Die form.html ist 320 Zeilen. Welchen Teil können Sie Ihrer Meinung nach hilfreich sein? –

+0

Ich würde gerne die Pfade zu den js-Skripten sehen, die Sie laden, weil die relativen Pfade von Ihrem HTML auf etwas verweisen, das im/form route-Szenario nicht existiert, weil es möglicherweise an statischen Dateien mangelt Lage Deklaration (nur eine Theorie) – ruedamanuel

Antwort

0

Das Problem ist, dass die relativen Pfade in dem js Skripte zu verschiedenen Orten weisen je nachdem, wie die Datei serviert wird. Die Lösung ist die Pfade von der gleichen Stelle zu verankern, indem ein / vor ihnen so einen Weg hinzufügen, die wie

sah

<script src="js/services/services.js"></script>

aussehen sollte

<script src="/js/services/services.js"></script>

Verwandte Themen