小程序云开发本地调试控制台报错“函数必须导出名为 'main' 的方法”bug
发布于 5 年前 作者 qjin 7126 次浏览 来自 官方Issues

勾选文件变更时自动重新加载,此bug在编辑数据库相关代码时出现,具体表现为输入一些字符如空格和删掉后,保存,就会出现以下信息。如果保存后报错,把代码改为创建新函数生成的模板代码仍会报错,另外,不只是修改数据库操作语句会产生此bug,反复按ctrl+s也有几率产生bug

安装依赖使用的命令是npm install --save wx-server-sdk@latest

代码:

const cloud = require('wx-server-sdk')
cloud.init()

// 云函数入口函数
exports.main = async (e, context) => {
  const wxContext = cloud.getWXContext()
  var time=new Date()
  var type=e.type
  var deviceid=e.deviceid
  a={
    time:time,
    type:type,
    deviceid:deviceid,
    read:false
  }
  const db = cloud.database()
  db.collection('announces').add({
    data:a
  })
  db.collection('userdevice').where({
    deviceid:deviceid
  }).get().then(
    res=>{
      console.log(res.data) 
    }
  ) 
  /*return {
    e,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
    aa:a
  }*/
}

报错信息:

node.js:1 [error] Uncaught Exception:  Error: 函数必须导出名为 'main' 的方法
    at u.load (C:\Users\duchu\AppData\Roaming\Tencent\微信开发者工具\package.nw\js\common\cloud-functions-debugger-server\worker\node.js:1:22007)
    at u.reload (C:\Users\duchu\AppData\Roaming\Tencent\微信开发者工具\package.nw\js\common\cloud-functions-debugger-server\worker\node.js:1:26848)
    at C:\Users\duchu\AppData\Roaming\Tencent\微信开发者工具\package.nw\js\common\cloud-functions-debugger-server\worker\node.js:1:28280
    at process. (C:\Users\duchu\AppData\Roaming\Tencent\微信开发者工具\package.nw\js\common\cloud-functions-debugger-server\worker\node.js:1:28356)
    at process.emit (events.js:203:13)
    at emit (internal/child_process.js:876:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)
m @ node.js:1
(anonymous) @ node.js:1
emit @ events.js:203
(anonymous) @ internal/process/execution.js:150
TickObject (async)
init @ internal/inspector_async_hook.js:21
emitInitNative @ internal/async_hooks.js:134
emitInitScript @ internal/async_hooks.js:341
TickObject @ internal/process/task_queues.js:102
nextTick @ internal/process/task_queues.js:130
handleMessage @ internal/child_process.js:885
channel.onread @ internal/child_process.js:574

回到顶部