Trabajando en una API simple. Logré que las solicitudes GET & DELETE funcionen, pero tengo algunos problemas con la solicitud POST. Estoy bastante seguro de que este es un error de novato, pero me falta la lógica aquí.
Este es el archivo donde se definen todas las rutas.
import express from 'express'; import fs from 'fs'; const router = express.Router(); 'use strict'; let rawdata = fs.readFileSync('api/resources/vehicles.json'); let vehicles = JSON.parse(rawdata); let vehiclesArray = vehicles.vehicles; let data = JSON.stringify(vehicles); fs.writeFileSync('api/resources/vehicles.json', data); router.get('/', (req, res, next) => { res.status(200).json(vehiclesArray); }); router.get('/:id', (req, res, next) => { let id = req.params.id; res.status(200).send(vehiclesArray[(id-1)]); }); router.delete('/:id', (req, res, next) => { let id = req.params.id; const removedVehicle = vehiclesArray.splice(id, 1); res.status(200).json({ message: `Vechicle ${removedVehicle} with id ${id} was removed` }); }); router.post('/', (req, res, next) => { let id = vehiclesArray.length + 1; const vehicle = { "id" : id, "type" : req.params.type, "brand" : req.params.brand, "model" : req.params.model, "production_year" : req.params.production_year, "kilometers_driven" : req.params.kilometers_driven, "price" : req.params.price }; res.status(201).send({ message: `POSTed new vehicle: ${vehicle}`, vehicle: vehicle }); res.status(201).send(vehiclesArray.push(vehicle)); }); export default router; Dentro de mi método POST, definí el vehículo, pero una vez que intento enviarlo, obtengo lo siguiente en Postman, a saber, una confirmación de un objeto agregado y el objeto, pero solo con la propiedad id. 
¿Puede alguien por favor darme una pista tal vez en lo que estoy haciendo mal? ¿También necesito una declaración de clase? ¡Gracias!
Mire la documentación de la API para params :
Esta propiedad es un objeto que contiene propiedades asignadas a los "parámetros" de la ruta con nombre. Por ejemplo, si tiene la ruta /usuario/:nombre, la propiedad "nombre" está disponible como req.params.name. Este objeto por defecto es {}.
Ahora mira tu ruta.
router.post('/', (req, res, next) => {
No tienes ningún parámetro allí. Así que eso no puede ser lo correcto.
Ahora mire la captura de pantalla de Postman, está completando los datos en la pestaña denominada Cuerpo .
Vuelva al documento de la API y hojee la lista de propiedades.
req.body aparece allí y dice:
Contiene pares clave-valor de datos enviados en el cuerpo de la solicitud. De forma predeterminada, no está definido y se completa cuando usa un middleware de análisis del cuerpo, como express.json() o express.urlencoded().
Así que configure un middleware de análisis del cuerpo, luego cambie los datos que está enviando para que estén realmente en ese formato (su captura de pantalla muestra que está ingresando datos sin procesar que son casi JSON, pero no del todo, por lo que debe arreglar eso) , asegúrese de ir a la sección Encabezados y configure el encabezado Content-Type para describir el formato que está enviando, luego mire req.body en lugar de req.params .
Según lo aconsejado por @Quentin: instalé el analizador de cuerpo y lo incluí en mi código.
import bodyParser from "body-parser"; router.use(express.json()); router.use(bodyParser.urlencoded({ extended: true }));Luego cambié el req.param* a req.body* en el cuerpo de la función posterior.
router.post('/:id', (req, res, next) => { let id = vehiclesArray.length + 1; const vehicle = { "id" : id, "type" : req.body.type, "brand" : req.body.brand, "model" : req.body.model, "production_year" : req.body.production_year, "kilometers_driven" : req.body.kilometers_driven, "price" : req.body.price }; res.status(201).send({vehicle: vehicle}); res.status(201).send(vehiclesArray.push(vehicle)); }); Como último paso, cambié el tipo de cuerpo en Postman a x-www-form-urlencoded. PUBLICAR a continuación, localhost:3000/vehículos/:id 
GET a continuación, solo para verificar si el objeto se agregó: 
También útil en mi esfuerzo: https://www.npmjs.com/package/body-parser