2016-01-09 11 views
5

Express

Trong vanilla Express.js, mã sau hoạt động tốt.Có thể sử dụng nhiều công cụ mẫu trong Sails.js không?

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); 

Miễn là các mô-đun có trong node_modules, cả hai mẫu đều được các công cụ thích hợp trả về.

Bạn cũng có thể chỉ định một cơ mặc định như vậy:

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

Trong Express, công cụ xem mặc định chỉ được sử dụng khi the extension is omitted.

Sails

Trong Sails.js, nó có vẻ như động cơ quy định config/view.js là động cơ duy nhất từng sử dụng.

Nếu tôi cố gắng để xác định phần mở rộng trực tiếp, tôi nhận được lỗi sau:

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

Có thể sử dụng công cụ xem khác nhau mà không có một số lượng lớn các voodoo trong Sails?

Trả lời

1

Câu trả lời ngắn gọn và chính xác nhất là không.

Ra khỏi sự nhàm chán kém, tôi đã xem xét câu hỏi này và thực hiện một chút của một bổ nhào sâu vào mã công cụ xem trong buồm. Nếu quan tâm, bạn cũng có thể tìm thấy những tập tin này trong dự án cánh buồm của bạn bằng cách vào thư mục:

node_modules\sails\lib\hooks\views

gì bạn sẽ tìm thấy, là những cánh buồm ra khỏi hộp, được thiết lập để sử dụng một công cụ xem mà thôi. Trong thư mục ở trên, bạn sẽ tìm thấy một tệp có tên là configure.js, đây là nơi mà logic đằng sau việc thiết lập công cụ xem tùy chỉnh xảy ra.

Dưới đây là một đoạn trích từ mã

// 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; 

Thật không may, không có vòng lặp thông qua để thiết lập nhiều công cụ. Cánh buồm đơn giản sử dụng động cơ được truyền trong tham số sails.config.views.engine và đi từ đó.

+0

Đó là những gì tôi bắt đầu tìm. Cảm ơn vì đã kiểm tra nó! –

Các vấn đề liên quan