在twilio功能中从资产读取csv文件时出现问题

时间:2020-04-21 16:51:13

标签: twilio twilio-api twilio-twiml

 var fs = require('fs');
        let fileName = 'file.csv';
        let file = Runtime.getAssets()[fileName].path;
        let text = fs.readFileSync(file);
            console.log('Your file contents: ' + text);

{
    "message": "Cannot read property 'path' of undefined",
    "name": "TypeError",
    "stack": "TypeError: Cannot read property 'path' of undefined\n    at Object.exports.handler (/var/task/handlers/ZFbf83ef45896ffe95e21dd028385c58ec.js:12:49)\n    at Object.exports.handler (/var/task/node_modules/enigma-lambda/index.js:310:10)\n    at Runtime.exports.handler (/var/task/enigma.js:17:9)\n    at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
}

我已将文件添加到资产中,并尝试将csv从资产中获取到twilio函数中

3 个答案:

答案 0 :(得分:0)

我测试了您的代码,它对我有用。

您是否以private asset的身份上传file.csv?

答案 1 :(得分:0)

看起来file.csv是公共资产文件。 Runtime.getAssets()只能获取私有资产文件的信息。 因此,如果file.csv是公共资产文件,则Runtime.getAssets()[fileName]不返回资产对象,因此您无法从结果中获得path的值。

答案 2 :(得分:0)

当我在代码中引用它时,我没有在文件名前面添加 / ,这也导致了未定义的问题,这是一个愚蠢的问题。这是您在资产或功能测试版用户界面中上传资产的时间。

let fileName = '/filename.csv';
let assetFile = Runtime.getAssets()[fileName].path;
const assetContent = fs.readFileSync(assetFile).toString('utf-8');