我试图模拟从Azure IoT Hub写入PostgreSQL的示例,如in this example.所示
我已经成功地将所有内容设置为函数被触发的位置。但是,本文中提供的代码:
module.exports = async function (context, IoTHubMessages) {
var pg = require('pg');
//const config = "postgres://<username>:<password>@<postgres servername>:5432/<database>";
const config = {
host: 'myserver.postgres.database.azure.com',
user: 'granted@myserver',
password: 'password',
database: 'telemetry',
port: 5432,
ssl: true
};
var client = new pg.Client(config);
const query = 'insert into tempdata(deviceid, data) values(' + eventHubMessages.deviceId + ',\'' + JSON.stringify(eventHubMessages) + '\');';
context.log(query);
client.connect();
client.query(query);
await client.end();
context.log('insert completed successfully!');
/*
client.connect(err => {
if (err) throw err;
else {
client
.query(query)
.then(() => {
context.log('insert completed successfully!');
client.end(console.log('Closed client connection'));
})
.catch(err => console.log(err))
.then(() => {
context.log('Finished execution, exiting now');
});
}
});
*/
};
字符串
生成此错误:
结果:失败异常:无法找到模块'base'-/home/site/wwwroot/IoTHub_EventHub2/index.js
我假设我必须在函数中安装PostgreSQL之类的东西?任何帮助都将不胜感激。
1条答案
按热度按时间jgovgodb1#
试图从门户安装和运行函数时出现问题。没有办法通过该机制添加依赖项,例如PostgreSQL。在Visual Studio Code中设置一个项目,我能够在本地运行npm,然后在安装函数时将依赖项添加到项目中。这解决了这个问题。