Soy nuevo en nodejs y trato de descubrir cómo obtener datos de twilio de un script de nodo en funcionamiento a través de ajax en la interfaz.
tengo esto en el backend
'use strict'; const express = require('express'); const twilio = require('twilio'); const accountSid = '####'; const authToken = "####"; const client = require('twilio')(accountSid, authToken); const baseURL = 'https://api.twilio.com' const recordingExtension = '.mp3' //mp3 or wav let app = express(); app.post('/list', (request, response) => { const recordings =[] client.recordings.list(function(err, data) { data.recordings.forEach(function(recording) { var recordingURIComponent = recording.uri.replace('.json','') var recordingURL = baseURL + recordingURIComponent + recordingExtension recordings.push(recordingURL) }); const recordingData = { recordings: recordings } response.send(recordingData) }); }); app.listen(3000, '127.0.0.1',function(){ console.log('listening'); });y ahora quiero acceder a esa respuesta de ajax en el front-end.
Sé que podría ser algo como:
$.post( '/list', function(data) { console.log(data) });Pero no estoy seguro de a dónde dirigir mi publicación/obtención/ajax. Si ambos archivos están en el mismo servidor, ¿qué URL utilizo como solicitud de publicación? ¿Necesito especificar el puerto (3000?). ¿O debo hacer algo en express para enviar el archivo html que hará la solicitud ajax?
Cualquier ayuda es apreciada. ¡Gracias!
Resolví este problema haciendo que node.js también sirviera mi html estático:
app.use(express.static('public_html'))
Cambié a una solicitud de obtención:
$.ajax({ method: "GET", url: "/list" }) .done(function( data ) { console.log(data) playlist = data len = playlist.recordings.length $audio[0].addEventListener('ended',onAudioEnded); playAudio() });y
app.get('/list', (request, response) => {
Con esta estructura de carpetas:
/ app.js public_html/ index.htmly me aseguré de acceder a mi sitio desde:
http://[mysite].com:3000
Intenta hacer una solicitud de publicación como esta
$.ajax({ url: "/list", data:{'auth':'465dsfsd5f44654'}, type: "POST", headers: { 'Content-Type': 'application/json' }, success: function (data) { } });