2017-04-15 67 views
-2

我一直在寻找在这里回答这个问题,但没有任何帮助我。一些解决方案也给了我更多的错误。错误:无法找到与Node.JS和快递模块'html'

我想要做的是使用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

问题是通过使用res.render('SOMEFILE.html')引起的,因为你没有告诉快递如何使一个.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

相关问题