it-swarm.com.de

NodeJs - esc ist keine Funktion

Beim Rendern einer .ejs -Datei in diesen Zeilen kam es zu seltsamen Problemen

TypeError: /home/me/nodeapp/app/views/default/page/connection.ejs:66
        64|         <div class="col s12 l8">
        65|             <ul class="collapsible popout" data-collapsible="accordion"">
     >> 66|                 <%- include ../api_html/connection/connection_list.ejs %>
        67|             </ul>
        68|         </div>

Hier ist der Fehler 

eSC ist keine Funktion

Ich verstehe wirklich nicht, woher dieser Fehler kommt ... Ich benutze keine esc-Funktion der ../api_html/connection/connection_list.ejs-Datei, die enthalten ist.

Darüber hinaus habe ich dieses Problem nicht auf meinem lokalen Server (unter Windows). Dieser Fehler wird unter einem CentOs-Server ausgelöst, auf dem ich genau dieselbe Nodeapp-Instanz ausführen kann.

Alle Ideen wären sehr dankbar!

Vielen Dank!

9
Dash

Erstmal danke für deine Antworten.

Ich habe das Problem herausgefunden.

Der Fehler war in der EJS-Datei<%- include ('../api_html/connection/connection_list.ejs') %> enthalten.

Wenn Sie beispielsweise <% include ../partials/header %> einschließen, der <%= user.email %> enthält, funktioniert es einwandfrei, wenn der Benutzer definiert ist (Benutzer ist angemeldet), wirft jedoch esc in not a function, wenn dies nicht der Fall ist.

17
Dash

Wenn @Dash die Frage beantwortet hat, geschieht dies, wenn Sie in der .ejs-Vorlage eine undefinierte Variable haben. Es gibt eine knifflige Methode, diese Variable zu finden. Sie können den Vorlagencode direkt in Ihre ejs-Datei einfügen. Wenn Sie nun Ihre App ausführen, können Sie sehen, welche Variable in undefined ..__ angezeigt wird Sie haben index.ejs und in diese Datei haben Sie eine Vorlage <%include partials/_pagination.ejs %> aufgenommen. Wenn Sie nun auf diesen Fehler stoßen, kopieren Sie einfach den Code in der _pagination-Datei in Ihrem Index und führen Sie ihn aus. Führen Sie Ihre App aus, um herauszufinden, welche Variable undefiniert ist.

Ich habe nicht den Ruf, so etwas zu kommentieren ... Ich habe gerade das gleiche Symptom gesehen. In meinem Fall habe ich versehentlich "currentUser.name" in "currentUser.Name" (Großbuchstabe "N") aus einem Beispiel im Buch "Express In Action", Abschnitt 8 geändert. 

in routen.js

var passport = require( "passport" );
router.use( function( req, res, next ) {
    res.locals.currentUser = req.user;
}

ansichten/_header.ejs

<a href="/edit">
    Hello <%= currentUser.Name() %>
</a>

als ich wieder zu "currentUser.name" wechselte, verschwand der TypeError

0
The PHM