> 文章列表 > 2023/4/10-2023/4/18周报

2023/4/10-2023/4/18周报

2023/4/10-2023/4/18周报

1 高德地图 运行抱错  INVALID_USER_SCODE 

这里是错误信息对应原因  错误信息列表-参考手册-地图 JS API | 高德地图API 

这里是高德地图api设置说明  准备-入门-教程-地图 JS API | 高德地图API    

如果你自己能排查出错误 那不用看我的,如果都写的对还是抱错 那不妨试试我说的

a) 上面2段代码的顺序 要正确。即先有上面设置serviceHost 后有下面引入高德的jsapi

b) 如果还不好使。不妨试试 将上面的这2段代码 放到 <header> 标签里。到这里 基本就好使了

对了 高德key 个人账号 上线只能申请25个

2 钉钉小程序和微信小程序 

之前写过 自动转换文章 和工具  有需要的可以去看 钉钉小程序自动转微信小程序_钉钉小程序转微信小程序_gaoqiang1112的博客-CSDN博客

这里提及一下最新遇到的问题和解决办法

a) 微信消息通知 打开微信小程序的 跳转地址是  app.json 里面的路径 可以 ?拼接参数

发送订阅消息 | 微信开放文档

钉钉消息通知 打开钉钉小程序的 跳转地址是 eapp:// 后 加 app.json里面的路径 可以 ?拼接参数

概述 - 钉钉开放平台

b) 微信和钉钉小程序 在接过来的值的时候 都是 onload 里的参数里获得,我这碰巧遇到一个mpvue弄的uni的项目 特殊提一嘴 这种项目微信无影响 钉钉小程序的值 onload里没有 因为 项目添加了  uni-simple-router  导致 参数丢失,最后在 this.$root.$mp.query  获取的值

c)钉钉小程序 上传文件的时候 钉钉/微信/uni 都有固定的请求方法  不要乱设置content-type  如果你自己在header上添加。微信小程序 安卓/ios 都好使。钉钉 安卓好使,ios 是一直抱错的,如果你遇到了  不妨检查一下 header里是否设置了content-type 或者说 应该写成 Content-Type。大小写也会在特殊情况下 引起错误的

3 volta 包管理器

之前的项目 mac 用的n 模块。windows 用的 nvm模块  都是去控制我电脑的node版本

但是当场景一   我a项目用的node12版本, b项目用的node16版本的时候  我只能用n去切换环境,然后要不启动a项目,要不启动b项目,无法同时启动2个项目

但是 volta就解决了这个问题  我们可以在项目的package.json 中去配置 volta  具体可以参考这篇文章。强大的JavaScript工具管理器Volta_package.json volta_神奇程序员的博客-CSDN博客

这样 我们的a项目和b项目 就可以以不通的node版本 同时运行起来。

额外提2点

a)如果你在已有n的环境按照了volta 那么 就无法用n去切换node版本了,整个电脑的默认node版本以及切换 需要用volta 去操作 比如切换 我就是重新下载一个 volta install node@12.0.0 的方式

b)  volta 其实对应的就是 python中的 anaconda

4 python有个jieba分词 node对应的是 nodejieba 

var nodejieba = require("nodejieba");var sentence = "查询人人人员姓名性别年龄口性别等于男人人人年龄在10与20之间姓名不为空姓名";var result;// 没有主动调用nodejieba.load载入词典的时候,
// 会在第一次调用cut或者其他需要词典的函数时,自动载入默认词典。
// 词典只会被加载一次。
result = nodejieba.cut(sentence);
console.log(result);result = nodejieba.cut(sentence, true);
console.log(result);result = nodejieba.cutHMM(sentence);
console.log(result);result = nodejieba.cutAll(sentence);
console.log(result);result = nodejieba.cutForSearch(sentence);
console.log(result);result = nodejieba.tag(sentence);
console.log(result);var topN = 5;
result = nodejieba.extract(sentence, topN);
console.log(result);result = nodejieba.textRankExtract(sentence, topN);
console.log(result);result = nodejieba.cut("男默女泪");
console.log(result);
nodejieba.insertWord("男默女泪");
result = nodejieba.cut("男默女泪");
console.log(result);result = nodejieba.cutSmall("南京市长江大桥", 3);
console.log(result);

5 关于正则表达式

平时我们常用的写法 (必须是8位以上字母+特殊符号+数字)
let regex = /^(?![A-z0-9]+$)(?![A-z_!@#$%&=~*+-]+$)(?![\\d_!@#$%&=~*+-]+$)([\\w!@#$%&=~*+-]{8,})$/;regex.test(value)     false 为不满足。true为满足用这样的方式去 判断是否通过正则表达式而当我们使用new RegExp() 我们如果这样写的时候
let regex = new RegExp(/^(?![A-z0-9]+$)(?![A-z_!@#$%&=~*+-]+$)(?![\\d_!@#$%&=~*+-]+$)([\\w!@#$%&=~*+-]{8,})$/) regex.test(value)     false 为不满足。true为满足如果判断一直是错误的 不妨试试 这样写let regex = new RegExp('^(?![A-z0-9]+$)(?![A-z_!@#$%&=~*+-]+$)(?![\\\\d_!@#$%&=~*+-]+$)([\\\\w!@#$%&=~*+-]{8,})$') 去掉 前后的 /  并且注释 正则内的 \\ 转译符  根据实际情况判断是否要对 转译符 进行转译