【问题标题】:Nodejs: Error: Cannot find module 'html'Nodejs:错误:找不到模块'html'
【发布时间】:2014-11-06 12:46:36
【问题描述】:

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

当我点击 url“localhost:5000/”时,这很好,但是当我尝试“localhost:5000/whatever”之类的东西时,我收到以下消息: 错误:找不到模块“html”

我是 nodejs 的新手,但我想要 all 路由来呈现 index.html 文件。我该怎么做???

谢谢。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

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

    【讨论】:

    • 别忘了之前需要安装“ejs”,好吗?拥抱
    • 当然,在安装 ejs 并将 'index.html' 放入 'views' 文件夹后它工作得很好,谢谢伙伴。
    • @vcrzy 为什么如果我不安装'ejs'模块它不起作用,即使我有静态 index.html,ejs 是如何依赖的???我也只有一个公共目录下的文件..
    • 同意这不是正确的答案。在他不需要也不想的时候强迫他使用 EJS...
    【解决方案2】:

    只有在使用像jade或ejs这样的渲染引擎时才使用渲染。如果您想使用纯 HTML,请将其放在公用文件夹中或作为静态文件提供。

    res.sendFile('index2.html', {root : __dirname + '/views'});
    

    【讨论】:

      【解决方案3】:

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

      npm install ejs
      

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

      修改后的代码如下,

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

      【讨论】:

        猜你喜欢
        • 2017-12-06
        • 2013-04-13
        • 2017-01-23
        • 2018-02-26
        • 2013-09-29
        • 2018-12-21
        • 2022-01-15
        • 2017-08-29
        • 2016-07-08
        相关资源
        最近更新 更多