/ / sails.js: usando dust in vele 0.10.5 - sails.js, dust.js

sails.js: usando dust in sails 0.10.5 - sails.js, dust.js

Sto provando a migrare un progetto da 0.9.9 a 0.10.5

Stavamo usando il motore di templating della polvere nel nostro porpo invece del motore ejs predefinito.

Contenuto del file config / views.js

module.exports.views = {
engine: "dust",
layout: "layout"
};

Nel mio controller, sono riuscito a rendere questa visualizzazione come questa

res.view("layout", obj);

Tuttavia, in vele 0.10.5, quando sollevo le vele, prima di tutto ottengo questo avvertimento

warn: Sails" built-in layout support only works with the `ejs` view engine.
warn: You"re using `dust`.
warn: Ignoring `sails.config.views.layout`...

E poi quando provo a rendere la vista come stavo facendo in precedenza, ottengo il seguente errore:

error: Sending 500 ("Server Error") response:
Error: ENOENT, open "/.dust"

{ [Error: ENOENT, open "/.dust"] errno: 34, code: "ENOENT", path: "/.dust" }

Qualche idea su quale sia il modo corretto di farlo in 0.10.5?

risposte:

1 per risposta № 1

Il layout la proprietà non si applica alla polvere (solo ejs). Imposta il layout su false per ottenere l'avviso di andare via. Si desidera utilizzare il supporto integrato di Dust per partial e blocks in ogni caso.

utilizzando res.view("layout", obj); significa che ti aspetti un file chiamato views/layout.dust esistere. Prima delle 0.10, le vele includevano il layout proprietà da config / views.js come parte del percorso.

Quindi la mia ipotesi migliore è quella tua res.view() la chiamata viene effettivamente invocata con una stringa vuota come primo parametro e non si è interrotta perché stavi tentando di eseguire il rendering di qualcosa chiamato layout. Controllerò la tua chiamata per assicurarti di chiamare res.view() con una variabile istanziata.