Using node.js as a simple web server

后端 未结 30 2577
感情败类
感情败类 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:29

    local-web-server is definitely worth a look! Here's an excerpt from the readme:

    local-web-server

    A lean, modular web server for rapid full-stack development.

    • Supports HTTP, HTTPS and HTTP2.
    • Small and 100% personalisable. Load and use only the behaviour required by your project.
    • Attach a custom view to personalise how activity is visualised.
    • Programmatic and command-line interfaces.

    Use this tool to:

    • Build any type of front-end web application (static, dynamic, Single Page App, Progessive Web App, React etc).
    • Prototype a back-end service (REST API, microservice, websocket, Server Sent Events service etc).
    • Monitor activity, analyse performance, experiment with caching strategy etc.

    Local-web-server is a distribution of lws bundled with a "starter pack" of useful middleware.

    Synopsis

    This package installs the ws command-line tool (take a look at the usage guide).

    Static web site

    Running ws without any arguments will host the current directory as a static web site. Navigating to the server will render a directory listing or your index.html, if that file exists.

    $ ws
    Listening on http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
    

    Static files tutorial.

    This clip demonstrates static hosting plus a couple of log output formats - dev and stats.

    Single Page Application

    Serving a Single Page Application (an app with client-side routing, e.g. a React or Angular app) is as trivial as specifying the name of your single page:

    $ ws --spa index.html
    

    With a static site, requests for typical SPA paths (e.g. /user/1, /login) would return 404 Not Found as a file at that location does not exist. However, by marking index.html as the SPA you create this rule:

    If a static file is requested (e.g. /css/style.css) then serve it, if not (e.g. /login) then serve the specified SPA and handle the route client-side.

    SPA tutorial.

    URL rewriting and proxied requests

    Another common use case is to forward certain requests to a remote server.

    The following command proxies blog post requests from any path beginning with /posts/ to https://jsonplaceholder.typicode.com/posts/. For example, a request for /posts/1 would be proxied to https://jsonplaceholder.typicode.com/posts/1.

    $ ws --rewrite '/posts/(.*) -> https://jsonplaceholder.typicode.com/posts/$1'
    

    Rewrite tutorial.

    This clip demonstrates the above plus use of --static.extensions to specify a default file extension and --verbose to monitor activity.

    HTTPS and HTTP2

    For HTTPS or HTTP2, pass the --https or --http2 flags respectively. See the wiki for further configuration options and a guide on how to get the "green padlock" in your browser.

    $ lws --http2
    Listening at https://mba4.local:8000, https://127.0.0.1:8000, https://192.168.0.200:8000
    

提交回复
热议问题