爆红信息 right-hand side of 'instanceof' is not an object
今天卡到一个本地跑好好的云对象部署云端直接报错了。
原因是这样的!!
1、你去看看你云函数依赖那npm install的插件node版本是不是有要求,博主开github看了尽然是node>=12
2、你本地的unicloud环境默认是node12的,而云端是node8!!!!!!,不信,你自己点开看
是吧,还不能直接改,我教你怎么改吧,官方文档我也是醉了
解决办法
你先看你云对象云函数下(是你建的云函数、比如col目录)根目录有没有package.json 这个文件夹,没有你就新建,建完你加这个代码
"cloudfunction-config": {
"memorySize": 512,
"timeout": 5,
"path": "",
"runtime": "Nodejs12"
}
这里注意看上面代码 是Nodejs12!!!!!!!!!!!
别忘记上传部署部署 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
对了 附上官方地址简介@intro | uni-app官网
这个是结构
{
"name": "add-article",
"version": "1.0.0",
"description": "新增文章",
"main": "index.js",
"dependencies": {
// 云函数的依赖,包括公共模块及自行安装的npm依赖
},
"extensions": {
// 云函数使用的扩展库
},
"cloudfunction-config": {
"memorySize": 256,
"timeout": 5,
"triggers": [{
"name": "myTrigger",
"type": "timer",
"config": "0 0 2 1 * * *"
}],
"path": "",
"runtime": "Nodejs8"
}
}
看到没有cloudfunction-config在哪一级
然后下面这个是cloudfunction-config这一级下面的
{
"concurrency": 10, // 单个云函数实例最大并发量,不配置的情况下默认是1
"memorySize": 256, // 函数的最大可用内存,单位MB,可选值: 128|256|512|1024|2048,默认值256,阿里云正式版默认512
"timeout": 5, // 函数的超时时间,单位秒,默认值5。最长为60秒,阿里云在定时触发时最长可以是600秒
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"triggers": [{ // 阿里云腾讯云均为此形式,请阅读下方说明
// name: 触发器的名字,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger,name不对阿里云生效
"name": "myTrigger",
// type: 触发器类型,目前仅支持 timer (即 定时触发器),type不对阿里云生效
"type": "timer",
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger。使用阿里云时会自动忽略最后一位,即代表年份的一位在阿里云不生效
"config": "0 0 2 1 * * *"
}],
// 云函数Url化path部分,阿里云需要以/http/开头
"path": "",
"runtime": "", // nodejs版本,可选Nodejs8、Nodejs12,默认:Nodejs8
"keepRunningAfterReturn": true // 是否在云函数return之后继续执行,仅腾讯云nodejs12生效,详情见下方说明
}
看到了吗 "runtime": "", // nodejs版本,可选Nodejs8、Nodejs12,默认:Nodejs8
博主原创,你还卡到啥,你在评论区问我吧。