小程序过滤关键词,过滤敏感词
异步函数同步调用
以文本内容敏感词检查为例(security.msgSecCheck)演示云函数的使用,以及同步调用函数
需求描述:
小程序中需要对用户发布的内容进行敏感词检查,检查通过继续执行,不通过提示含有敏感词,因为异步流程嵌套太麻烦这里使用同步调用判断函数checkString
1.云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
// const wxContext = cloud.getWXContext();
// console.log(event)
// console.log(context)
try {
console.log(event.content)
var result = await cloud.openapi.security.msgSecCheck(
{
content: event.content,
}
);
console.log(result);
return result;
} catch (err){
console.log(err);
throw err;
}
}
2.checkString 调用云函数(common.js文件里)
异步方式
function checkString(content){
wx.cloud.callFunction({
name: 'checkString',
data: {
content: content,
}
}).then(res => {
console.log(res);
if (res.result.errCode == 0)
return true;
return false;
}).catch(err => {
console.error(err);
return false;
});
}
同步方式
/**
* 同步检查是否包含敏感词
*/
async function checkString(content) {
try {
var res = await wx.cloud.callFunction({
name: 'checkString',
data: {
content: content,
}
});
if (res.result.errCode == 0)
return true;
return false;
} catch (err) {
console.log(err);
return false;
}
}
module.exports = {
checkString: checkString
}
3.项目调用
pubcom: async function (e) {
wx.showLoading({
title: '加载中',
mask:true
})
var that = this
var content = that.data.comcon
var formId = e.detail.formId;
if (!content){
return
}
var isCheck = await common.checkString(content);
if (!isCheck) {
wx.showToast({
title: '含有敏感词',
image: "/assets/icon/icon-warning.png",
});
return
}
}
执行流程