Подтвердить что ты не робот

Как сделать сайт Express без механизма шаблонов?

Я не хочу, чтобы Jade или EJS на моем сайте. Как я могу создать экспресс-сайт без его отказа от шаблонов Jade? Благодаря

4b9b3361

Ответ 1

Если вам нужно напрямую обслуживать статические html файлы с возможностью кэширования ресурсов, но при этом все еще можно нажать "/" и получить index.html, тогда ответ будет таким же простым, как это:

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

app.use(express.static(__dirname + '/public'));

http.createServer(app).listen(3000);

Gotcha: Html файлы, включая index.html, должны быть внутри/общей папки вместо/views

Ответ 2

Вы можете прокомментировать строки

app.set 'views', __dirname + '/views'
app.set 'view engine', 'jade'

из кода инициализации Express.

Если вы используете только статический контент: https://github.com/visionmedia/express/blob/master/examples/static-files/index.js

В противном случае используйте вашу базу данных, свои файлы, свой пользовательский ввод или что-то еще, чтобы объединить строку, которая будет составлять ответ HTTP.

// Express 3.x
app.get('*', function(req,res){
  fs.readFile('./foo.txt', 'utf8', function (err, data) {
    if (err) throw err;
    data += (req.query['something'] || "")
    res.type('text/plain');
    res.send(200, data);
  });
});

Сказав это, я полюбил Джейд, поскольку я играл с ним последние несколько месяцев. Он имеет свои особенности, но на порядок быстрее писать любой сложный html.

Ответ 3

С Express 4.0.0 вам нужно только прокомментировать 2 строки в app.js:

/* app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade'); */ //or whatever the templating engine is.

И затем отбросьте свой статический html в каталог /public. Пример:/public/index.html

Ответ 4

Использовать рестайлинг http://restify.com/

var restify = require('restify'),
fs = require('fs');

var server = restify.createServer({
  certificate: fs.readFileSync('path/to/server/certificate'),
  key: fs.readFileSync('path/to/server/key'),
  name: 'MyApp',
});

server.listen(8080);

Это сильно зависит от Express -Routing

Ответ 5

Вы можете использовать команды выше, чтобы установить экспресс-генератор глобально, а затем создать проект без движка представления

 npm install -g express-generator
 express newProject --no-view