Estoy tratando de hacer un servidor para un sitio web. El servidor funciona perfectamente y puede recibir y enviar datos con normalidad. He alojado el servidor e hice una demostración del lado del cliente en Replit para probar el flujo. Pero de alguna manera, la respuesta no se recibe o envía correctamente, o el servidor no funciona. (Para el código del lado del cliente, estoy usando JQuery)
// Client Side Code
const url = "My url";
const data = {
"file": "lol.html"
}
function start() {
console.log("test 1")
$.post(url, data, function(data, status) {
console.log(data + "is data & status is " + status);
});
}
// Server-side code
var http = require('http'); // Import Node.js core module
var fs = require('fs'); // File System
var url = require('url');
var server = http.createServer(function(req, res) { //create web server
if (req.url == '/') { //check the URL of the current request
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify({ message: "This is the Backend server for my website" }));
res.end();
}
else if (req.url == "/ping") {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify({ message: "Pong!" }));
res.end();
}
else if (req.url.startsWith("/read")) {
var q = url.parse(req.url, true);
var qdata = q.query;
fs.readFile(String(qdata.file), function(err, data) {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html' });
return res.end("404 Not Found");
}
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(data);
return res.end();
});
}
else if (req.url.startsWith("/get")) {
var q = url.parse(req.url, true);
var qdata = q.query;
fs.readFile(String(qdata.file), function(err, data) {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html' });
return res.end("404 Not Found");
}
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(data);
return res.end();
});
}
else {
res.end('Invalid Request!');
}
});
server.listen(5000); //6 - listen for any incoming requests
console.log('Node.js web server at port 5000 is running..')
¿Alguien puede decirme cómo realizar esto correctamente?
Utilice axios en lugar de tecnologías antiguas de obtención de datos. Es un cliente HTTP basado en promesas para el navegador y node.js.
Realización de una solicitud POST
axios.post('/YOUR_FULL_API_URL', {
data1: 'value1',
data2: 'value2'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Documentación completa: https://axios-http.com/
Léame del paquete NPM: https://www.npmjs.com/package/axios