Como me livro do Jade enquanto uso o Express with Node.JS? Eu quero usar apenas html simples. Em outros artigos, vi que as pessoas recomendaram app.register (), que agora está obsoleto na versão mais recente.
103
Você pode fazer desta forma:
Instale ejs:
npm install ejs
Defina seu mecanismo de modelo em app.js como ejs
// app.js
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
Agora, em seu arquivo de rota, você pode atribuir variáveis de modelo
// ./routes/index.js
exports.index = function(req, res){
res.render('index', { title: 'ejs' });};
Então você pode criar sua visão html no diretório / views.
title
em arquivo html?Jade também aceita entrada html.
Basta adicionar um ponto ao final da linha para começar a enviar html puro.
Se isso funcionar para você, tente:
PS - Não há necessidade de fechar o HTML - isso é feito automaticamente pela Jade.
fonte
A partir do expresso 3, você pode simplesmente usar
response.sendFile
Da referência oficial expressa da API :
Aviso
res.sendFile
fornece cache do lado do cliente por meio de cabeçalhos de cache http, mas não armazena o conteúdo do arquivo no lado do servidor. O código acima irá para o disco em cada solicitação .fonte
sendfile
não permite que você faça modelos, uma vez que apenas envia bytes de um arquivo. Além disso, eu não recomendaria usarsendfile
assim porque significa que você acessará o disco toda vez que uma solicitação chegar - um grande gargalo. Para páginas de alto tráfego, você realmente deve fazer o cache na memória.Na minha opinião, usar algo tão grande como ejs apenas para ler arquivos html é um pouco pesado. Acabei de escrever meu próprio mecanismo de modelo para arquivos html que é extremamente simples. O arquivo tem a seguinte aparência:
Liguei para o meu htmlEngine, e a maneira como você o usa é simplesmente dizendo:
fonte
app.register()
não foi depreciado, ele apenas foi renomeado paraapp.engine()
desde que o Express 3 muda a forma como os mecanismos de modelo são tratados .Se você está procurando um mecanismo de modelagem que permite usar HTML 'puro', recomendo o doT porque é extremamente rápido .
Obviamente, tenha em mente que o modelo de visualização do Express 3 deixa o cache de visualização por sua conta (ou seu mecanismo de modelagem). Em um ambiente de produção, você provavelmente deseja armazenar em cache suas visualizações na memória para que não faça E / S de disco a cada solicitação.
fonte
Você pode usar EJS com express quais modelos são HTML, mas suportam variáveis. Aqui está um bom tutorial sobre como usar o EJS no Express.
http://robdodson.me/blog/2012/05/31/how-to-use-ejs-in-express/
fonte
Para fazer o mecanismo de renderização aceitar html em vez de jade, você pode seguir os seguintes passos;
Instale consolidate e gire em seu diretório.
adicione as seguintes linhas ao seu arquivo app.js
adicione seus modelos de visualização como .html dentro da pasta “visualizações”. Reinicie seu servidor de nó e inicie o aplicativo no navegador.
Embora isso renderize html sem nenhum problema, recomendo que você use JADE aprendendo. Jade é um mecanismo de modelo incrível e aprender isso o ajudará a obter um design e escalabilidade melhores.
fonte
primeiro verifique a versão de compatibilidade do mecanismo de modelo usando a linha abaixo
então você tem que usar nenhuma visão da lista. selecionar nenhuma visão
agora você pode usar todos os seus html, css, js e imagens na pasta pública.
fonte
Bem, parece que você deseja servir arquivos estáticos. E há uma página para isso http://expressjs.com/en/starter/static-files.html
Bizarro que ninguém está ligando para a documentação.
fonte
Considerando que você já tem suas rotas definidas ou sabe como fazer.
NOTA: esta rota deve ser colocada depois de todas as outras, pois * aceita tudo.
fonte
uma vez que o Jade suporta HTML, se você quiser apenas ter .html ext, você pode fazer isso
então você apenas muda o arquivo nas visualizações de jade para html.
fonte
Você também pode incluir diretamente seu arquivo html em seu arquivo jade
Resposta original: Express Generator Without Jade
fonte
Se você quiser usar html simples em nodeJS, sem usar jade .. ou qualquer outra coisa:
Pessoalmente, estou bem com isso.
A vantagem é a simplicidade no controle. Você pode usar alguns truques, como
'<p>' + (name || '') + '</p>'
ternário .. etc.Se quiser um código recuado no navegador, você pode fazer:
e use \ t ou \ n à vontade. Mas prefiro sem, além disso, é mais rápido.
fonte
fs
módulo.fs.readFile(htmlfile, 'utf8', function (err, file) {