Using node.js as a simple web server

后端 未结 30 2795
感情败类
感情败类 2020-11-22 02:54

I want to run a very simple HTTP server. Every GET request to example.com should get index.html served to it but as a regular HTML page (i.e., same

30条回答
  •  生来不讨喜
    2020-11-22 03:18

    Most of the answers above describe very nicely how contents are being served. What I was looking as additional was listing of the directory so that other contents of the directory can be browsed. Here is my solution for further readers:

    'use strict';
    
    var finalhandler = require('finalhandler');
    var http = require('http');
    var serveIndex = require('serve-index');
    var serveStatic = require('serve-static');
    var appRootDir = require('app-root-dir').get();
    var log = require(appRootDir + '/log/bunyan.js');
    
    var PORT = process.env.port || 8097;
    
    // Serve directory indexes for reports folder (with icons)
    var index = serveIndex('reports/', {'icons': true});
    
    // Serve up files under the folder
    var serve = serveStatic('reports/');
    
    // Create server
    var server = http.createServer(function onRequest(req, res){
        var done = finalhandler(req, res);
        serve(req, res, function onNext(err) {
        if (err)
            return done(err);
        index(req, res, done);
        })
    });
    
    
    server.listen(PORT, log.info('Server listening on: ', PORT));
    

提交回复
热议问题