Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery ajax从node.js文件检索数据_Jquery_Node.js_Ajax_Express_Twilio - Fatal编程技术网

如何使用jquery ajax从node.js文件检索数据

如何使用jquery ajax从node.js文件检索数据,jquery,node.js,ajax,express,twilio,Jquery,Node.js,Ajax,Express,Twilio,我是nodejs的新手,正在尝试弄清楚如何通过前端的ajax从工作节点脚本获取twilio数据 我在后端有这个 'use strict'; const express = require('express'); const twilio = require('twilio'); const accountSid = '####'; const authToken = "####"; const client = require('twilio')(accountSid, authToken)

我是nodejs的新手,正在尝试弄清楚如何通过前端的ajax从工作节点脚本获取twilio数据

我在后端有这个

'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');
});
现在我想在前端访问来自ajax的响应

我知道它可能看起来像:

$.post( '/list', function(data) {
  console.log(data)
});
但是我不确定我的post/get/ajax应该指向哪里。如果两个文件都在同一台服务器上,我应该使用什么URL作为post请求?是否需要指定端口(3000?)。或者我需要在express中做些什么来提供将执行ajax请求的html文件吗


感谢您的帮助。谢谢

尝试这样做post请求

$.ajax({
      url: "/list",
      data:{'auth':'465dsfsd5f44654'},
      type: "POST",
      headers: {
          'Content-Type': 'application/json'
      },
      success: function (data) {

      }
  });

我通过让node.js也提供我的静态html解决了这个问题:

app.use(express.static('public_html'))

我更改为获取请求:

$.ajax({
   method: "GET",
   url: "/list"
})
 .done(function( data ) {
    console.log(data)
    playlist = data
    len = playlist.recordings.length
    $audio[0].addEventListener('ended',onAudioEnded);
    playAudio()
});

app.get('/list',(请求,响应)=>{

使用此文件夹结构:

/
  app.js

  public_html/

    index.html
并确保从以下位置访问我的网站:


http://[mysite].com:3000

路由未配置为接受任何参数。但是您的jQuery帖子正在传递参数?为什么会这样?我的错-不需要参数。修改了代码。不熟悉twilio api,但
client.recordings.list()正在做什么?以及
$.post()的响应是什么
您在控制台中看到了吗?只是在
$.post
中找不到一个404-client.recording.list只是列出了我的twilio帐户中可用的所有录制。如果我仅在服务器上自己的文件中使用node.js命令来执行它,它会自动工作,但不确定如何从这个'app.post'调用它('/list')命令首先解决404问题。使用cURL或向该端点发出请求。还要检查web控制台和node.js控制台(如果启用了日志记录),以确定哪个请求击中了express服务器。