Home > Web Front-end > JS Tutorial > How to deploy a Node.js Express app on Netlify (4)

How to deploy a Node.js Express app on Netlify (4)

DDD
Release: 2024-11-10 10:57:02
Original
1050 people have browsed it

Netlify does not make it easy to host an Express web app. I hope you will find this guide useful.

Steps

  • Structure your app in a similar way as the below:

How to deploy a Node.js Express app on Netlify (4)

  • Follow this guide https://docs.netlify.com/frameworks/express/ . I deleted node_bundler = "esbuild" because it threw an ESM error and everything worked fine regardless.
  • When creating the netlify.toml file keep redirects specific to the API and any endpoints you want to serve through Express. A general redirect (i.e. "/*") will mess up your CDN and static file serving.

How to deploy a Node.js Express app on Netlify (4)

  • (Optional) Use a local server file for development to keep things more tidy such as the image:

How to deploy a Node.js Express app on Netlify (4)

  • The package.json can look like this:

     "scripts": {
        "start": "node ./functions/server.js",
        "build": "netlify deploy --prod",
        "build-dev": "NODE_ENV=development webpack --mode development --watch",
        "dev": "NODE_ENV=development node server-local.js",
        "dev-watch": "NODE_ENV=development nodemon --exec node server-local.js",
    },
    
    Copy after login
  • Write your server.mjs code such as the image:

How to deploy a Node.js Express app on Netlify (4)

  • Inside the index.html and the rest of the .html files the path to CSS, JS, and other assets is best set to the CDN which will work in both dev and production i.e.:


  • Run netlify dev on the console to test before deployment

Key lessons

  • The server.js or server.mjs app only has access to /netlify/functions. The 'public' or 'dist' or 'static' folder will not be added to the netlify folder unless explicitly specified in the netlify.toml file using the command
[functions]
  included_files = [
    "static/views/**"  # Include all files in static/views for server-side access
  ] 
Copy after login
  • Static assets are better served by Netlify's CDN, which will happen automatically if in the netlify.toml file you use the command
[build]
  publish = "static"  # Static assets to be served by Netlify's CDN. Folder defaults to public
Copy after login
  • Console.log statements outside of router endpoints are not shown on the console.

The above is the detailed content of How to deploy a Node.js Express app on Netlify (4). For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template