Tengo una variable en Javascript que estoy tratando de pasar al nodo js para que pueda colocarse en un archivo JSON pero no está escribiendo en el archivo. Creo que cometí un error en la solicitud de AJAX Post o en el enrutamiento JS del nodo.
El javascript ejecutándose en una página HTML
function WriteToJSON() { var floors = document.getElementById("floor-number").value; $.ajax({ type: "POST", url: "http://localhost:8080/getfloors", dataType :"text", data: {Floors: floors}, }) }El nodo JS
var http = require('http'); var fs = require('fs'); var url = require('url'); const path = require('path'); var express = require('express'); var serveStatic = require('serve-static'); const { Router } = require('express'); const app = express(); var bodyParser = require('body-parser') const port = process.env.PORT || 8080; app.get("/", function(req, res) { res.sendFile(path.join(__dirname, '/welcome-page.html')) }) app.get("/Question-1", function(req, res) { res.sendFile(path.join(__dirname, '/Question-1.html')) }) app.post("/getfloors", (req, res) => { var floors = req.body.Floors; console.log(floors); fs.writeFileSync('Data.json', floors); }) app.listen(8080);¿Hay alguna razón por la que está utilizando AJAX en lugar del método de búsqueda?
Pruebe esta solución (tenga en cuenta que he usado la función asíncrona):
async function WriteToJSON() { const floors = document.getElementById("floor-number").value; const body = new URLSearchParams(); body.append("Floors", floors); const response = await fetch('http://localhost:8080/getfloors', { method: 'POST', body }); }