Skip to content

PawFV/express-json-server

Repository files navigation

Simple Express JSON-Server

Table of Contents

About

Simple Nodejs Express API using Lowdb a small JSON database.

Requirement

  • Node.js

Install

$ npm install

Usage

Launches Express http server with nodemon

$ npm start

Launches an http request to your server with Axios

$ npm run api

Examples:

Populate DB with random data

npm run api

// fetch.js

const populate = number => api(`populate/${number}`, 'post')

// Uncoment wanted queries.
populate(50)
// getUsers()
// ...

// Expected output:
  "users": [
    {
      "id": "9c2fc126-0766-42b2-b26d-032a3540e442",
      "name": "Rawson",
      "email": "Kristy.Gaylord33@gmail.com"
    },
    // 49 more...
  ]

Update a user

npm run api

// fetch.js

const updateUser = (id, mutation) => api(`${id}`, 'put', mutation)

// Uncoment wanted queries.
updateUser("9c2fc126-0766-42b2-b26d-032a3540e442", { name: 'Paw', sex: 'Not found' })
// ...

// Expected output:
{
  updatedUser: {
    id: '9c2fc126-0766-42b2-b26d-032a3540e442',
    name: 'Paw',
    email: 'Kristy.Gaylord33@gmail.com',
    sex: 'Not found'
  }
}

Generate mock data

it uses faker.js to generate random realistic data, make the wanted changes here.

// routes/users.js

router.post('/populate/:number', (req, res) => {
  const { number } = req.params

  for (let i = 0; i < number; i++) {
    // Random fake data. more on https://www.npmjs.com/package/faker
    const user = {
      id: faker.random.uuid(),
      name: faker.name.firstName(),
      email: faker.internet.email(),
      address: faker.address.direction(),
      country: faker.address.county(),
      phone: faker.phone.phoneNumber(),
      vehicle: faker.vehicle.vehicle(),
      model: faker.vehicle.model(),
      color: faker.vehicle.color(),
      avatarUrl: faker.image.avatar(),
      bgImg: faker.image.nature()
    }
    db.get('users').push(user).write()
  }

  res.json({ message: 'users created!', 'users': db.get('users').value() })
})

Contributing

Open an issue or submit PRs.

License

MIT - PawFV.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages