错误:找不到Node.JS和Express的模块'html'

时间:2017-04-15 07:02:20

标签: javascript node.js express mean-stack meanjs

我一直在寻找这个问题的答案,但没有任何帮助我。有些解决方案也给了我更多错误。

我要做的是使用Node.JS路由到不同的页面。在MEAN堆栈上学到了一点,我决定使用Node,Express和Angular(尚未到达那里)。如果我试图去任何不是'/'路线的地方,我会收到一条错误,上面写着'找不到模块'html'。以下是有问题的代码:

//dependencies
var express = require('express');
var path = require('path');
var engines = require('consolidate')

//variables
var RUN_PORT = 8080;
var VIDEO_IN_PORT = 45679;
var CONTROL_OUT = 45678;
var app = express();

app.use(express.static(path.join(__dirname, 'public')));

//index.html routing
app.get('/', function(req, res){
    res.render("index.html");
});

//robot_control.html routing
app.get('/robot_control', function(req, res){
    res.render("robot_control.html");
});

//error.html routing
app.get('/error', function(req, res){
    res.render("error.html");
});

//showing that the program is running on the RUN_PORT
app.listen(RUN_PORT, function(){
    console.log("Running on port " + RUN_PORT);
});

我在这里看不到什么?一切似乎都很好看。我在package.json中安装的所有内容都是Express。我能够很好地进入索引页面,但除此之外的任何内容都会导致错误。

1 个答案:

答案 0 :(得分:1)

此问题是由使用res.render('SOMEFILE.html')引起的,因为您没有告诉Express如何呈现.html扩展名的文件。

由于您没有使用任何模板(还),您可以使用:

// Somewhere at the top:
const path  = require('path');
const VIEWS = path.join(__dirname, 'views');
...

// In your route handlers:
res.sendFile('index.html', { root : VIEWS });

如果您想开始使用模板,请查看此处:http://expressjs.com/en/guide/using-template-engines.html