如何在没有模板引擎的情况下制作Express网站?

时间:2013-02-04 06:10:49

标签: express

我不想在我的网站上使用Jade或EJS。如何在没有默认的Jade模板的情况下创建一个快速网站?感谢

5 个答案:

答案 0 :(得分:20)

如果您想要的是直接提供可以缓存资源的静态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);

问题:包括index.html在内的Html文件必须位于/ public文件夹中,而不是/ views

答案 1 :(得分:3)

您可以注释掉

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都要快几个数量级。

答案 2 :(得分:0)

使用Express 4.0.0,您唯一要做的就是在app.js中注释掉2行:

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

然后将静态html放入/ public目录。示例:/public/index.html

答案 3 :(得分:0)

使用Restify
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

答案 4 :(得分:0)

您可以使用以上命令在全局安装Express-Generator,然后在没有视图引擎的情况下搭建项目

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