Estoy creando una solicitud HTTP para una aplicación CRUD a través de JS. El objetivo de esta solicitud es simplemente crear un registro en la base de datos de inicios de sesión de una nueva cuenta de usuario. Cuando intento solicitar esto, aparece un error 500:
Hago la solicitud en un pequeño script de prueba tonto:
const axios = require("axios"); var http = axios.create({ baseURL: "http://localhost:8080/", headers: { "Content-type": "application/json" } }); class UserDataService { getAll(){ return http.get("/users"); } get(id){ return http.get(`/users/${id}`); } create(data){ return http.post("/users", data); } update(id, data){ return http.put(`/users/${id}`, data); } delete(id){ return http.delete(`/users/${id}`); } findByUsername(username){ return http.get(`/users?username=${username}`); } authenticateLogin(data){ console.log(data); return http.get("/login"); } } function main(){ const uds = new UserDataService(); // http://localhost:8080'/api/users uds.create({ username: "root", email: "root@enron.com", password: "password" }).catch(err => { console.log(err); }); } main(); Esto se enruta a users.routes.js :
router.post("/users", users.create); Que luego se envía a users.controller.js :
exports.create = (req, res) => { console.log("User being created"); const user = { username: req.body.username, email: req.body.email, password: crypto.createHash("md5").update(req.body.password).digest("hex") }; Users.create(user) .then(data => { res.send(data) }) .catch(err => { res.status(500).send({ message: err.message || "Error occurred when creating a user" }) }); };Este es mi error:
Error: Request failed with status code 500 at createError (/home/amicharski/WebstormProjects/profrec/node_modules/axios/lib/core/createError.js:16:15) at settle (/home/amicharski/WebstormProjects/profrec/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/home/amicharski/WebstormProjects/profrec/node_modules/axios/lib/adapters/http.js:293:11) at IncomingMessage.emit (node:events:402:35) at endReadableNT (node:internal/streams/readable:1343:12) at processTicksAndRejections (node:internal/process/task_queues:83:21) {No estoy seguro de cómo funcionó esto, pero puse comillas alrededor de los nombres de los campos de nombre de usuario, correo electrónico y contraseña cuando llamé a la API:
function main(){ const uds = new UserDataService(); // http://localhost:8080'/api/users uds.create({ "username": "root", "email": "root@enron.com", "password": "password" }).catch(err => { console.log(err); }); } main();