Nodejs:错误:找不到模块'html' [英] Nodejs: Error: Cannot find module 'html'

查看:1103
本文介绍了Nodejs:错误:找不到模块'html'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我使用nodejs和im尝试只提供html文件(没有玉,ejs ...引擎)。 :

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

当我点击urllocalhost:5000 /时,这样做很好,但是当我尝试像localhost:5000 / whatever我收到以下消息:
错误:找不到模块'html'



im new to nodejs,但是我希望所有路由呈现 index.html 文件。我该怎么办?



谢谢。

解决方案

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


im using nodejs and im trying to serve only html files (no jade, ejs ... engines).

heres my entry point (index.js) code:

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

This is doing just fine when i hit the url "localhost:5000/", but when i try something like "localhost:5000/whatever" i got the following message: Error: Cannot find module 'html'

im new to nodejs, but i want all routes to render the index.html file. How can i do that ???

Thank you.

解决方案

You need to specify your view folder and parse the engine to 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() {
});

这篇关于Nodejs:错误:找不到模块'html'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆