Intenté crear una función del lado del cliente que envía una solicitud de búsqueda de datos json y luego agrega la respuesta a un div, sin embargo, parece que no funciona.
aquí está el código de función del lado del cliente
function bobFun(){ let response = fetch('http://127.0.0.1:3000/dylan/list', { mode: 'no-cors' }) .then(console.log("fetch sent")) //.then(console.log(response)) .then(response => { return response.text().then(text => { document.getElementById("test").append(text) }); });aquí están los datos json del lado del servidor
let dylan = ['song recommendation 1', 'song recommendation 2', 'song recommendation 3', ]; app.get('/dylan/list', function(req, resp){ resp.send(dylan);Creo que el problema es la forma en que estás usando el primer .then() . Con solo iniciar sesión en la consola, no está devolviendo un valor que se pueda encadenar con el siguiente .then()
Vea mi respuesta a continuación e intente reformatear la suya para que coincida.
fetch('https://jsonplaceholder.typicode.com/todos') .then(response => response.text()) .then(text => { document.getElementById("test").append(text) }) <div id="test"></div>Creo que no has usado then encadenamiento correctamente. En general then tome la función de devolución de llamada.
A continuación se muestra la forma correcta de usar fetch con luego encadenar:
function bobFun() { fetch('http://127.0.0.1:3000/dylan/list', {mode: 'no-cors'}).then( (response) => { return response.text() ; } ).then( (textData) => { document.getElementById("test").append(textData) } ) } También puede usar ECMAScript 2017 async/await en lugar de engorroso then encadenar con fetch, que tiene una sytanx simple y limpia.
async function bobFun() { const response = await fetch('http://127.0.0.1:3000/dylan/list', {mode: 'no-cors'}) const textData = await response.text() document.getElementById("test").append(textData) }