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

daf*_*key 13 javascript node.js express

即时通讯使用nodejs和我试图只提供html文件(没有玉,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() {
});
Run Code Online (Sandbox Code Playgroud)

当我点击网址"localhost:5000 /"时,这样做很好,但是当我尝试类似"localhost:5000/what"的内容时,我收到以下消息: 错误:无法找到模块'html'

我是nodejs的新手,但我希望所有路由都能呈现index.html文件.我怎样才能做到这一点 ???

谢谢.

vmo*_*iro 30

您需要指定视图文件夹并将引擎解析为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() {
});
Run Code Online (Sandbox Code Playgroud)

  • 同意这不是正确的答案.当他没有必要也没有欲望时强迫这个人使用EJS ...... (7认同)
  • 别忘了你之前需要安装"ejs",好吗?拥抱 (2认同)

che*_*n92 11

只有在使用某些渲染引擎(如jade或ejs)时才会使用渲染,如果您打算使用纯HTML,将其放在公用文件夹中或将其作为静态文件提供.

res.sendFile('index2.html', {root : __dirname + '/views'});
Run Code Online (Sandbox Code Playgroud)


Cod*_*ker 6

首先你需要安装ejs引擎。为此,您可以使用以下代码

npm install ejs
Run Code Online (Sandbox Code Playgroud)

之后,您需要添加应用引擎并设置视图目录。

更改后的代码如下,

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() {
});
Run Code Online (Sandbox Code Playgroud)