DEV Community

loading...
Cover image for Setup a Node/ExpressJS API Project in less than 10mins

Setup a Node/ExpressJS API Project in less than 10mins

jalasem profile image Abdul-Samii Ajala ・2 min read

Create your project repository

Create a repo on Github for your new Node project. Give it a name &description.

  • Choose whether you want the repo to be private or public.
  • Add .gitignore and select Node

Create a repo

  • Upon creating your repository copy the ssh link of the project

..
..

Clone the repo

In your terminal, navigate to your project folder and run

git clone <repo_link>
Enter fullscreen mode Exit fullscreen mode

this will clone the files from your Github repo to your laptop

  • cd into the newly cloned project and run
npm init
Enter fullscreen mode Exit fullscreen mode
  • Answer all the questions accordingly, that should create a file named package.json for you.
  • In your terminal, install your dev dependencies; eslint, babel & nodemon
npm i -D eslint nodemon @babel/node @babel/cli @babel/core @babel/plugin-transform-async-to-generator @babel/plugin-transform-runtime @babel/preset-env
Enter fullscreen mode Exit fullscreen mode

set project configurations

  • create babel.config.json
{
  "presets": ["@babel/preset-env"],
  "plugins": ["@babel/plugin-transform-runtime"]
}
Enter fullscreen mode Exit fullscreen mode

In your project directory, create src/index.js file and create a simple server in it like so

import express from 'express'
const app = express()

app.get('/', (req, res) => {
    res.send('Hello world')
})

app.listen(9090, () => {
    console.log('Server is running on port 9090')
})
Enter fullscreen mode Exit fullscreen mode
  • In your package.json, let's add some scripts
{
    ...
    "script": {
      "dev": "nodemon --exec babel-node src",
      "start": "node dist/",
      "lint": "./node_modules/.bin/eslint . --fix",
      "build": "npm run lint && babel src -d dist"
    },
    ...
}
Enter fullscreen mode Exit fullscreen mode

Install express as a dependency

npm i express
Enter fullscreen mode Exit fullscreen mode

Be sure to initialize your eslint like so;

npx eslint --init
Enter fullscreen mode Exit fullscreen mode
  • choose To check syntax, find problems, and enforce code style
  • select JavaScript modules (import/export)
  • under which framework, select none of these
  • where does your code run? Check Node only
  • How would you like to define a style for your project? select Use a popular style guide
  • choose Standard: [https://github.com/standard/standard](https://github.com/standard/standard)
  • What format do you want your config file to be in? select JSON
  • Would you like to install them now with npm? Choose Yes
    suggestions above can be modified based on your specific project need

  • Create .eslintignore file and exclude dist folder like so

dist/**
Enter fullscreen mode Exit fullscreen mode

Finally, let's create nodemon.json

{
  "verbose": false,
  "delay": "0",
  "ignore": ["*.test.js", "dist/*"]
}
Enter fullscreen mode Exit fullscreen mode

Run your code

npm run dev
Enter fullscreen mode Exit fullscreen mode

You should get a message in the console that reads

Server is running on port 9090

Commit and push your work to Github

πŸ’ͺπŸ½πŸ‘¨πŸ½β€πŸ’»πŸš€

Cover image credit: ClΓ©ment H, Unsplash.com

Discussion

pic
Editor guide