我是编程语言的新手,正在做一个使用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));
});发布于 2020-06-14 23:33:30
您的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));
});有了所有的callbcks和嵌套函数,在Javascript程序中很难遵循控制流程。
另外,不要忘了在messages.create()操作的.next()子句后面放一个.catch()子句。
https://stackoverflow.com/questions/62371815
复制相似问题