首页 > 解决方案 > 使用 Node.js 和 Aritable 的 Twilio 中的变量

问题描述

我是编程语言的新手,并且正在使用 Twilio 和 Airtable 进行辅助项目。

我想使用从 Airtable 数据库中检索到的变量发送 SMS。我无法为"to"数字和"body"文本(例如名字)打印变量。

const accountSid = 'ACXXXXXXXXXXX'
const authToken = 'cXXXXXXXXXXXXXXXXXXX'
var Airtable = require('airtable');
var base = new Airtable({apiKey: 'keyXXXXXXXXXX'}).base('XXXXXXXXXXXX');
var client = require('twilio')(accountSid, authToken
);

base('Table_1').select({
    // Selecting the first 3 records in Grid view:
    maxRecords: 1,
    view: "Grid view"
}).eachPage(function page(records, fetchNextPage) {
    // This function (`page`) will get called for each page of records.
        records.forEach(function(record) {
        var name = (record.get('Name'));
    });

client.messages.create({
  from: '+16XXXXXXXX',
  to: '+61XXXXXXXX',
  body: "Hello World My name is," + name
}).then((message) => console.log(message.sid));

});

标签: node.jstwilioairtable

解决方案


您的name变量仅在您的records.forEach(function(records){})函数范围内。但是你需要它来击中 twilio。尝试这样的事情。

    ...
    records.forEach(function(record) {
    var name = (record.get('Name'));
    client.messages.create({
                from: '+16XXXXXXXX',
                  to: '+61XXXXXXXX',
                body: "Hello World My name is," + name
       }).then((message) => console.log(message.sid));
    });

凭借其所有的回调函数和嵌套函数,很难遵循 Javascript 程序中的控制流。

另外,不要忘记在您的操作.catch()条款之后放置一个条款。.next()messages.create()


推荐阅读