2017-03-20 2 views
0

Ich arbeite an einer Node.js/Express, die EJS verwendet und versucht, bestimmte Ansichten auf dem Desktop oder Handy zu rendern.Rendern von App-Ansichten pro Benutzer-Agent in EJS

Ich habe die folgende Middleware hinzugefügt, um den User-Agent in meinem app.js zurückzukehren:

app.use(function(req, res, next) { 
    res.locals.ua = req.get('User-Agent'); 
    next(); 
}); 

Als nächstes, wenn ich <%= ua %> meiner Ansicht Echo, ich erfolgreich den User-Agent, aber ich bin nicht sicher, wie man bestimmte Agenten tatsächlich überprüft.

Ich versuchte <$ if(ua.match(/iPhone)) { %> als ein schnelles Beispiel, aber bekam einen Syntaxfehler. Jede Hilfe wäre willkommen!

Antwort

1

mehr Fehler:

1) begannen Sie mit einem $ in Ihrem eingebetteten Script. Sie sollten stattdessen eine % verwenden.

2) Sie müssen Ihre Regex mit einer / schließen.

Etwas wie folgt aus:

<% if(ua.match(/Intel/)) { %> 
    <%= ua %> 
<% } %> 
+0

Oh, Mann, das ist peinlich. Verdammt, EJS. Ich mache selten Syntaxfehler, aber danke für den Regex-Tipp! –

+0

Keine Sorge ... Sie haben mir eine neue Möglichkeit gezeigt, den 'User-Agent'-Header in Express zu bekommen. Fairer Handel! –