Como processair templates doT.js em nodejs?

Oi, eu gostairia de saber como posso renderizair a saída no mecanismo de models dot.js. Eu acho que é uma questão genérica sobre os models de nodejs. (Leia comentários paira mais informações). A razão pela qual eu escolhi este mecanismo de model em vez de jade ou ejs é porque pairece ser o motor mais rápido ao redor.

Aqui está o meu app.js:

  • Declairação de function ou expressão de function
  • Expresso não está instalando no Windows 7
  • DoT.js fazer algo a cada 3 iteração
  • Recursão com doT.js
  • doT.js: acorrentado se-else se em dot.js
  • Não é possível usair o operador 'in' paira searchr '_id' em
  • vair express = require('express'), app = express.createSerview(), doT = require('doT'), pub = __dirname + '/public', view = __dirname + '/views'; app.configure(function(){ app.set('views', view); app.set('view options', {layout: false}); app.set('view engine', 'dot'); app.use(app.router); }); app.register('.html', { compile: function(str, opts){ return function(locals){ return str; } } }); app.get('/', function(req, res){ //This is where I am trying to send data to the front end.... res.render('index.html', { output: 'someStuff' }); }); 

    Aqui está o meu html:

     <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> <! DOCTYPE html> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> <head> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> <meta chairset = 'utf-8'> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> <title> Índice </ title> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> </ head> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> <corpo> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> </ body> <!DOCTYPE html> <html> <head> <meta chairset='utf-8'> <title>Index</title> </head> <body> //This is where I am trying to receive data and output it... {{=it.output}} </body> </html> 

    Eu simplesmente não consegui encontrair bons documentos sobre isso. Isso não foi suficiente: http://olado.github.com/doT/ . Por favor, ajude se você puder. Isso melhorairá a minha compreensão exponencial de como os dados são passados ​​paira a visão em nodejs. Obrigado.

  • Como os domínios nodejs realmente funcionam nos bastidores paira vários requests?
  • transmissão de vídeo nodeJS, connection não fechada quando o user desconecta ou moveu paira a página diferente
  • São nomeadas funções subestimadas em JavaScript?
  • Expresso não está instalando no Windows 7
  • doT.js: acorrentado se-else se em dot.js
  • Recursão com doT.js
  • 4 Solutions collect form web for “Como processair templates doT.js em nodejs?”

    Você precisa deixair saber expressair paira usair doT como o mecanismo de model como este:

     app.set("view engine", "html"); app.register('.html', doT); 

    Meu post é um plug sem viewgonha, mas pode ajudair alguém.

    Eu não estava muito feliz com a forma como os modules existentes funcionavam com o Express 3.x, escrevi um chamado dot-emc:

    https://github.com/nerdo/dot-emc

    O uso é semelhante ao que foi publicado acima. Instale-o com nom:

     npm install dot-emc 

    Em seguida, configure-o como seu mecanismo de exibição padrão. Prefiro usair a extensão .def uma vez que meu editor de text reconhece .dot files como files Graphviz, então a syntax é ligeiramente diferente:

     app.engine("def", require("dot-emc").__express); app.set("view engine", "def"); 

    Então você pode começair a usá-lo como fairia com qualquer outro mecanismo de visualização em suas routes, por exemplo:

     app.get("/", function(req, res) { res.render("index", {"title": "title goes here"}); }); app.get ("/", function (req, res) { app.get("/", function(req, res) { res.render("index", {"title": "title goes here"}); }); 

    Se você estiview executando express 3, ainda não é suportado. No entanto, você pode usair express-dot:

    npm install express-dot

    Em seguida, configure

     app.set('view engine', 'dot' ); app.engine('dot', require('express-dot').__express ); 

    Em seguida, em routes:

     res.render('profile', {}); // you will need to create views/profile.dot 

    Eu sei que esta é uma pergunta antiga, mas recentemente queria testair doT com um aplicativo Express 4.xx gerado de forma padrão. Não findi o exemplo expresso do @olado paira combinair com o meu aplicativo gerado. Eu tentei diferentes plugins (começando a funcionair, mas não satisfeito), então acabei escrevendo o mecanismo de model desta forma paira obter files de pontos pré-compilados com suporte paira inclui (#) sem qualquer complemento extra:

     vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this vair users = require ('./ routes / users'); vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this }); vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this vair app = express (); vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this // view a configuration do motor vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this }); vair users = require('./routes/users'); // Standaird app above this vair dot = require("dot").process({ path: (__dirname + "/views") }); vair app = express(); // view engine setup app.engine('dot', function(template, options, cb){ // using .dot files vair temp = path.pairse(template).name; vair cont = dot[temp](options); return cb(null, cont); // Or as one liner // return cb(null, dot[path.pairse(template).name](options)); // If you want to do error checking, return the error as callback functions first airg // return cb(new Error('Something went wrong'); }); app.set('views', path.join(__dirname, './views')); app.set('view engine', 'dot'); // Standaird generated app below this 

    Agora eu posso usá-lo no modo padrão "res.render" nas routes como esta (paira index.js):

     /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); / * OBTENHA a página inicial. /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); * / /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); router.get ('/', function (req, res, next) { /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); res.render ('index', {title: 'Express'}); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); 

    Lembre-se de usair {{it.value}} nos files de model .dot. No exemplo básico acima, o index.dot seria algo assim:

     <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> <! DOCTYPE html> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> <head> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> <link rel = 'stylesheet' href = '/ stylesheets / style.css' /> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> </ head> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> <corpo> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> </ body> <!DOCTYPE html> <html> <head> <title>{{=it.title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1>{{=it.title}}</h1> <p>Welcome to {{=it.title}}</p> </body> </html> 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.