Quiero enviar los datos de frontend a backend nodejs usando nodejs, ¿cómo hago eso?
aquí está mi código ajax
const news = document.getElementById("news"); news.addEventListener('click',(e) =>{ e.preventDefault(); let data = " "; const xhttp = new XMLHttpRequest(); const url = 'https://newsapi.org/v2/top-headlines?category=technology&apiKey=<api_key>'; xhttp.open('GET',url, true); xhttp.onreadystatechange = function(){ if(this.status === 200 && this.readyState === 4){ let data = JSON.parse(this.response); } } xhttp.send(); })y el código de fondo es
const newsController = () => { return{ getNews(req, res){ console.log(res) }, } } module.exports = newsController;los datos deben enviarse al backend en la ruta de obtención para que pueda representar los datos en la página html.
Puede probar este código, pero las capas userService y userRepo que estoy eliminando de este ejemplo son excesivas.
Aplicación.js
import express from "express"; import { userRouter } from "./routes/userRoutes.js"; const PORT = process.env.PORT || 8080; const app = express(); app.use(express.json()); app.use('/api', userRouter); app.listen(PORT, () => console.log(`http://localhost:${PORT}`));UserRoutes.js
import userController from "../controller/userController.js"; import { Router } from "express"; const router = new Router(); router.get('/users', userController.getUsers.bind(userController)); export {router as userRouter}controlador de usuario.js
import userService from "../service/userService.js"; class UserController { constructor(userService) { this.userService = userService; } async getUsers(req, res) { res.json(await this.userService.getUsers()); } } export default new UserController(userService);O puede usar la documentación oficial expresa.