请教如何解决 globalThis is not defined 错误
在云对象mqtt-publish目录下npm了mqtt.js
连接本地云函数调用正常
上传部署云端后,连接云端云函数,前端调用提示Uncaught (in promise) Error: [mqtt-publish]: globalThis is not defined 错误
云对象代码
async msgPublish(msg) {
const mqtt = require('mqtt');
let host = 'tcp://202.120.92.203:1883';
let publishTopic = '/vaeb9Ypj/O5YVteYn/data';
let clientId = "mqtt_1";
let client = null;
if (client == null || client.connented == false) {
console.log('in if code')
client = mqtt.connect(host, {
clientId,
clean: true,
connectTimeout: 4000,
username: 'O5YVteYn',
password: 'CU2b5ZfP',
});
client.on('connect', () => {
const message1 = JSON.stringify(msg)
client.publish(publishTopic, message1, error => {
// console.log(error || '消息发布成功');
if (error) {
console.log(error)
} else {
console.log('消息发布成功');
client.end();
}
})
});
}
return {
code: 200
};
}
前端代码
methods: {
send() {
cloud.msgPublish({
data: "hello world"
}).then(res=>{
console.log(res)
})
}
}
1 个回复
从不吃西瓜 (作者) - 从不吃西瓜
是云端node.js版本问题,云端默认是nodejs8
需要在第一次上传部署云对象时,在package.json中添加cloudfunction-config属性,并加入runtime
之后在云端控制台可以看到云端运行环境是nodejs14