Nodejs:错误:找不到模块'html'

时间:2014-11-06 12:46:37

标签: javascript node.js express

我正在使用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文件。我怎么能这样做?

谢谢。

3 个答案:

答案 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() {
});