Nodejs: Error: Cannot find module 'html'

后端 未结 3 1557
生来不讨喜
生来不讨喜 2021-02-01 22:12

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         


        
相关标签:
3条回答
  • 2021-02-01 22:29

    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() {
    });
    
    0 讨论(0)
  • 2021-02-01 22:29

    Use render only when using a rendering engines like jade or ejs. If you want to use plain HTML, place it in the public folder or serve it as a static file.

    res.sendFile('index2.html', {root : __dirname + '/views'});
    
    0 讨论(0)
  • 2021-02-01 22:35

    First of all you need to install ejs engine. For that you can use the following code

    npm install ejs
    

    After that you need to add app engine and set the view directory.

    The changed code is given below,

    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() {
    });
    
    0 讨论(0)
提交回复
热议问题