2016-01-09 24 views
5

Express

Vanilla Express.js'de, aşağıdaki kod güzel çalışır.Sails.js'de birden fazla şablon motoru kullanmak mümkün mü?

var app = require('express')(); 

app.get('/jade', function(req, res) { 
    res.render('slash.jade'); 
}); 

app.get('/ejs', function(req, res) { 
    res.render('slash.ejs'); 
}); 

app.listen(1338); 

sürece modüller node_modules mevcut olduğu gibi, her iki şablonları uygun motorları tarafından oluşturulur.

Ayrıca şöyle bir varsayılan motoru belirtebilirsiniz:

Express'te
app.set('view engine', 'haml'); 
app.get('/', function(req, res) { 
    res.render('slash'); //looks for slash.haml in views directory 
}); 

varsayılan görünüm motoru sadece the extension is omitted kullanılır. motor config/view.js şimdiye kullanılan tek motordur belirtilen gibi

Yelkenler

Sails.js, öyle görünüyor.

error: Ignoring attempt to bind route (/barn) to unknown view: barn.jade 

o Sails içinde voodoo büyük miktarda olmadan farklı görünüm motorları kullanmak mümkün mü:

doğrudan uzantısı belirtmek çalışırsanız

, ben şu hata alıyorum?

cevap

1

Kısa ve en doğru cevap, hayır.

Zayıf sıkıntıdan ötürü, bu soruya bir göz attım ve yelkenlerdeki görüşlerin motor koduna biraz derin bir dalış yaptım. Eğer ilgi de dizine giderek yelkenler projede bu dosyaları bulabilirsiniz:

bulacaksınız Ne

node_modules\sails\lib\hooks\views

, kutunun dışında, bir görünüm motorunu sadece kullanmak üzere ayarlandı yelkenler olduğunu. Yukarıdaki dizinde, configure.js adında bir dosya bulacaksınız; bu, özel bir görünüm motorunun ayarlanmasının arkasındaki mantığın gerçekleştiği yerdir. İşte

Maalesef döngü hiçbir birden motorları ayarlamak için orada kod

// Normalize view engine config and allow defining a custom extension 
if (_.isString(sails.config.views.engine)) { 
    var viewExt = sails.config.views.extension || sails.config.views.engine; 
    sails.config.views.engine = { 
      name: sails.config.views.engine, 
      ext: viewExt 
    }; 
} 

// Get the view engine name 
var engineName = sails.config.views.engine.name || sails.config.views.engine.ext; 

gelen snippet'idir. Yelkenler, sails.config.views.engine parametresinde geçen motoru kullanır ve buradan gider.

+0

Bu şekilde anlamaya başladım. Kontrol ettiğiniz için teşekkürler! –

İlgili konular