在 lambda 函数中使用 npm 模块 (ogr2ogr) returns 没有结果
Using npm module (ogr2ogr) in lambda function returns no results
我正在尝试在 lambda 函数中使用 ogr2gr module 但我遇到了一些问题,所以我想看看是否有人尝试在 lambda 函数中使用该模块?我使用 ogr2ogr 模块的方式是 .promise()
。但是,当我尝试 运行 我的 lambda 函数时,我在日志中看不到任何内容。好像从来没有兑现过承诺?这是我的代码与承诺的样子:
let data = await ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']).promise();
console.log(data);
我完全按照文档中的说明进行操作,但仍然无法正常工作。我应该指出的是我试图做
let ogr = ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
console.log(ogr);
我实际上在日志中看到了 EventEmitter:
EventEmitter {
_inPath: '<path_of_file>',
_onStderr: [Function (anonymous)],
_driver: {},
_args: [],
_timeout: 15000,
_format: 'GeoJSON',
_skipfailures: false,
_testClean: [Function (anonymous)],
_destination: <database information>,
_options: [
'-f "PostgreSQL"',
'-nlt PROMOTE_TO_MULTI',
'nln useradministration.tableName',
'-overwrite'
]
}
但是如果我尝试像文档中所说的那样使用 .exec()
函数进行回调,我看不到任何输出:
let ogr = ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
console.log(ogr);
ogr.exec(function (er, data) {
if (er) {
console.error(er);
}
console.log(data);
});
老实说,我现在很困惑,不知道该怎么做。非常感谢任何帮助,例如是否有人有类似的问题,或者可能解释为什么 promise 或回调在 lambda 函数中起作用。
原来我的 lambda 超时是 3 秒,而 promise 花费的时间超过 3 秒,导致 lambda 超时,我在日志中看不到任何结果。
我正在尝试在 lambda 函数中使用 ogr2gr module 但我遇到了一些问题,所以我想看看是否有人尝试在 lambda 函数中使用该模块?我使用 ogr2ogr 模块的方式是 .promise()
。但是,当我尝试 运行 我的 lambda 函数时,我在日志中看不到任何内容。好像从来没有兑现过承诺?这是我的代码与承诺的样子:
let data = await ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']).promise();
console.log(data);
我完全按照文档中的说明进行操作,但仍然无法正常工作。我应该指出的是我试图做
let ogr = ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
console.log(ogr);
我实际上在日志中看到了 EventEmitter:
EventEmitter {
_inPath: '<path_of_file>',
_onStderr: [Function (anonymous)],
_driver: {},
_args: [],
_timeout: 15000,
_format: 'GeoJSON',
_skipfailures: false,
_testClean: [Function (anonymous)],
_destination: <database information>,
_options: [
'-f "PostgreSQL"',
'-nlt PROMOTE_TO_MULTI',
'nln useradministration.tableName',
'-overwrite'
]
}
但是如果我尝试像文档中所说的那样使用 .exec()
函数进行回调,我看不到任何输出:
let ogr = ogr2ogr(path)
.destination(database)
.options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
console.log(ogr);
ogr.exec(function (er, data) {
if (er) {
console.error(er);
}
console.log(data);
});
老实说,我现在很困惑,不知道该怎么做。非常感谢任何帮助,例如是否有人有类似的问题,或者可能解释为什么 promise 或回调在 lambda 函数中起作用。
原来我的 lambda 超时是 3 秒,而 promise 花费的时间超过 3 秒,导致 lambda 超时,我在日志中看不到任何结果。