2016-07-11 13 views
0

Im pm2 mit meinem NodeJS Mikrodienste und express-handlebars zu handhaben, die Ansichten zu handhaben:Wie verhindert man, dass PM2 das aktuelle Verzeichnis ändert?

var hbs = exphbs.create({ 
    defaultLayout: 'main', 
    helpers: { 
    ifeq: function(a, b, options) { 
     if (a === b) { 
     return options.fn(this); 
     } 
     return options.inverse(this); 
    }, 
    toJSON : function(object) { 
     return JSON.stringify(object); 
    } 
    } 
}); 

app.engine('handlebars', hbs.engine); 
app.set('view engine', 'handlebars'); 

die App lunching direkt (Knoten app.js) funktioniert super. Aber wenn ich das Mittagessen es PM2 mit (PM2 app.js Start) i erhalten:

Error: Failed to lookup view "home" in views directory "/root/views"

Wenn PM2 aktuellen Arbeitsverzeichnis ändern lunching zu/root/und da meinen App in nicht da bekam ich einen Fehler von Lenkern versuchen um das Sichtenverzeichnis zu öffnen (welches sich im App-Verzeichnis befindet).

Gibt es eine Möglichkeit, dies zu beheben, indem Sie pm2 das aktuelle Arbeitsverzeichnis mitteilen oder indem Sie der express-lenker-Bibliothek das komplette Verzeichnis mitteilen, anstatt ein relatives zu verwenden?

Antwort

0

Ich bin mit Koa und SWIG für Vorlagen - aber ich brauchte den Pfad zu den Ansichten in dem App-Setup ist:

app.use(koaRender('./server/server-side-views', { 
     map: { html: 'swig' }, 
     cache: false 
})); 

Ich vermute, dass es mehr von den gleichen für Sie. Ich denke, in Ihrem Code ausdrücken sollte etwas entlang der Linie sein:

app.engine('handlebars', hbs.engine); 
app.set('view engine', 'handlebars'); 
app.set('views', __dirname + '/yourViewDirectory'); 
+0

Dies scheint das Problem zu beheben, aber jetzt im bekommen: Fehler: ENOENT: keine solche Datei oder das Verzeichnis, offen ‚/ root/Ansichten/Layouts /main.handlears ' Ich versuchte app.set (' Layouts ', __dirname +'/Ansichten/Layouts '); aber nichts, vielleicht ist der Parameter nicht Layouts? – DomingoSL

+0

Ich kann Ihnen nicht wirklich mit Ihren Besonderheiten helfen. Fügen Sie einige Konsolenprotokolle hinzu, um zu sehen, welche Pfade gesetzt werden und ob sie mit Ihren Erwartungen übereinstimmen – akaphenom

Verwandte Themen