31

我不想在我的网站上出现 Jade 或 EJS。如何在不默认使用 Jade 模板的情况下创建快速站点?谢谢

4

5 回答 5

31

如果您想要的是直接提供静态 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

于 2013-10-16T23:53:33.367 回答
22

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

 npm install -g express-generator
 express newProject --no-view
于 2019-04-28T05:59:45.640 回答
4

您可以注释掉这些行

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

话虽如此:在过去的几个月里我一直在玩 Jade,我已经爱上了它。它有它的特性,但编写任何复杂的 html 的速度要快几个数量级。

于 2013-02-06T23:08:58.470 回答
1

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

于 2014-04-17T17:43:13.813 回答
1

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

于 2016-12-05T05:23:06.370 回答