我正在使用nodejs并且我只是尝试提供html文件(没有jade,ejs ......引擎)。
继承我的入口点(index.js)代码:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public'));
app.get('*', function(req, res){
res.render('index.html');
});
app.listen(app.get('port'), function() {
});
当我点击网址" localhost:5000 /"时这样做很好,但是当我尝试类似" localhost:5000 /其他"我收到以下消息: 错误:无法找到模块' html'
我是nodejs的新手,但我想要所有路由来呈现index.html
文件。我怎么能这样做?
谢谢。
答案 0 :(得分:25)
您需要指定视图文件夹并将引擎解析为HTML。
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/public/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.get('*', function(req, res){
res.render('index.html');
});
app.listen(app.get('port'), function() {
});
答案 1 :(得分:7)
只有在使用某些渲染引擎(例如jade或ejs)时才会使用渲染,如果您打算使用纯HTML,将其放在公用文件夹中或将其作为静态文件提供。
res.sendFile('index2.html', {root : __dirname + '/views'});
答案 2 :(得分:3)
首先,您需要安装ejs引擎。为此,您可以使用以下代码
npm install ejs
之后,您需要添加App Engine并设置视图目录。
下面给出了更改的代码,
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/public');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.listen(app.get('port'), function() {
});