en mi servidor express cuando hago clic en el botón de carga o en el botón de descarga, quiero que mi servidor funcione con el sistema de archivos (fs) sin cambiar la página web. ¿Cómo implementar este código en JS?
let express = require('express'); let Fs = require('fs'); let path = require('path'); let URL = require('url'); let app = express(); let router = express.Router(); const port = 2020; app.use(express.static('Programs')); app.use('/', router); router.get('/' , (req, res) => { res.sendFile(path.join(__dirname+'/views/UiOfServer.html')); }); router.get('/todo/download' , (req, res) => { res.send("download page"); }); router.get('/todo/upload' , (req, res) => { res.send("upload page"); }); app.listen(port, (err, res) => { if(err){ console.log(`Server Error: ${err}`); } else{ console.log(`server started on ${port}`); } })
Si no desea que la página actual en el navegador cambie o se actualice al hacer clic en un botón, debe usar AJAX.
Debe usar puntos finales de carga y descarga como API y llamar a estas API desde su página web.
Puede usar bibliotecas como jquery, axios, fetch, etc. para facilitar su trabajo
ejemplo en jquery
$.get('/todo/download').done(response => console.log(response))
¿Quiere decir que no quiere que el servidor lea y escriba continuamente? Si es verdad, pruébalo.
fs.readFileSync(your_data_url);
debería estar en la parte superior (tal vez después de let router = express.Router();
) porque es síncrono y solo se ejecuta una vez cuando carga la página web