const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() const _ = db.command const RESULT_LIMIT = 20 function escapeRegExp(s) { return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } exports.main = async (event, context) => { const keyword = String((event && event.keyword) || '').trim() if (!keyword) return { code: 0, data: [] } try { const re = db.RegExp({ regexp: escapeRegExp(keyword), options: 'i' }) const res = await db.collection('users') .where(_.or([{ nickName: re }, { handle: re }, { location: re }])) .field({ nickName: true, avatarUrl: true, bio: true, handle: true, location: true }) .limit(RESULT_LIMIT) .get() return { code: 0, data: res.data } } catch (e) { return { code: -1, message: e.message } } }