Skip to content

Repository files navigation

LeanEngine Node.js Demos

该项目是 LeanEngine Node.js 项目的常用功能和示例仓库。包括了推荐的最佳实践和常用的代码片段,每个文件中都有较为详细的注释,适合云引擎的开发者阅读、参考,也可以将代码片段复制到你的项目中使用。

若希望从一个更精简的项目骨架开始开发你的新项目,请使用 leancloud/node-js-getting-started

功能列表(云函数)

下面列出的功能均以云函数实现,位于 functions 目录中。每个文件的开头已列出所需的依赖和配置(环境变量),你可以在安装依赖后将文件直接复制到你的 functions 目录中,我们的示例项目会自动加载这个目录中的文件。

对于需要 LeanCache 的功能,还请阅读下面的 LeanCache 段落。

✅表示写了测试,✨表示实现了相对完整的功能,无需修改即可使用。

文件名提供的云函数介绍
amr-transcoding.jsamrToMp3使用 ffmpeg 将 amr 音频转码为 mp3。
associated-data.jscreatePostSamples
getPostsWithAuthor
getPostWithAuthor
afterUpdate:_User
缓存关联数据示例(需要 LeanCache)。
batch-update.jsbatchUpdateByQuery
batchUpdateAll
批量更新数据示例。
captcha-cache.jsgetCaptchaImageCache
requestMobilePhoneVerifyCache
使用图形验证码限制短信接口(使用 LeanCache)(需要 LeanCache)。
captcha-storage.jsgetCaptchaImageStorage
requestMobilePhoneVerifyStorage
✅ 使用图形验证码限制短信接口(使用云存储后端)。
crawler.jscrawlWebsite
crawling
爬虫示例,使用云队列抓取一个站点下的所有网页。
imagemagick.jsimageMagicResize✅ 使用 imageMagick 处理图像。
leaderboard.jssubmitHighest
getRankRange
getScoreRange
getRankAndScore
archiveLeaderboard
✨ 一个功能相对完整的排行榜,支持任意数量的用户排序、支持查询任意用户的排名、支持查询任意排名段的用户(需要 LeanCache)。
limited-stock-rush.jscreateRushStock
getOpeningRushs
rush
commitRushStock
✨ 使用 LeanCache 应对秒杀抢购活动中短时间的大量请求(需要 LeanCache)。
login-by-app.jsrequestLoginByApp
verifyByApp
loginByApp
通过移动端应用验证用户身份,登录网站(比如扫码登录)。
meta.jsgetEnvironments
getUser
getParams
getClientMeta
getHeaders
afterSave:HookObject
从运行环境或客户端读取元信息(环境变量、请求头等)。
pubsub.jspublishMessage使用 Redis Pub/Sub 收发消息。
queue-delay-retry.jsqueueDelayTask
queueRetryTask
delayTaskFunc
retryTaskFunc
云队列:延时和重试。云函数任务队列提供了一种可靠地对云函数进行延时运行、重试、结果查询的能力。
queue-result-query.jscreateTask
queryResult
longRunningTask
云队列:结果查询
readonly.jsupdateCategory
getCategories
afterUpdate:Category
afterSave:Category
afterDelete:Category
refreshCategories
热点只读数据缓存示例(需要 LeanCache)。
redlock.jsstartTaskLoop
getCurrentTask
用 LeanCache 实现分布式锁(需要 LeanCache)。
rtm-signature.jssignLogin
signStartConversation
signOperateConversation
signQueryMessage
signBlockConversation
signBlockClient
✅ 使用云引擎实现即时通讯服务的签名。
todos.jsgetAllTodos
createTodo
deleteTodo
setTodoToDone
在云引擎中以客户端的权限来操作云存储。
weapp-decrypt.jsdecryptWeappData✨ ✅ 解密微信小程序用户加密数据。
xml.jsxmlBuildObject使用云函数序列化 XML 对象。
rtm-onoff-status.js_clientOnline
_clientOffline
getOnOffStatus
即时通讯上下线状态的存储以及查询(需要 LeanCache)。

功能列表(网站托管)

下面列出的功能位于 routes 目录。每个文件的开头已列出所需的依赖和配置(环境变量),有些功能需要额外的配置,请阅读文件开头的说明,你可以在安装依赖后将文件直接复制到你的 routes 目录中,然后在 app.js 中引用,例如:

app.use('/wechat',require('./routes/wechat-message-callback'))
文件名介绍
wechat-message-callback.js接收并自动回复 微信公众平台的用户消息回调
websocket.js简单的 WebSocket 示例:将客户端发来的消息原样发回客户端(echo)、每隔一秒向客户端发送一条消息(timer)
cookie-session.js使用 Cookie Session 在 Cookie 中维持用户登录状态
render-ejs.js使用 EJS 渲染 HTML 页面
markdown.js项目主页,将 README.md 渲染成 HTML 显示在页面上

其他 Demo

还有一些功能相对完备的 Demo 被制作成了独立的应用:

Demo 地址代码地址介绍
snapcat.leanapp.cnsnapcat 分支一个使用 chrome-headless 的截图服务。
graphql.leanapp.cnleancloud/leancloud-graphql运行在云引擎上的第三方 GraphQL 支持,允许你用 GraphQL 查询 LeanCloud 云存储中的所有数据。
leanticket.cnleancloud/ticket运行在云引擎上的工单系统(即 LeanCloud 官方客服系统)
status.leancloud.cnleancloud/leancloud-statusLeanCloud 服务状态页。

脚本

这些工具脚本位于 bin 目录:

文件名使用方法介绍
load-testload-test 30对自定义的代码片段进行压力测试的工具,会给出速率和耗时等统计数据。

LeanCache

对于用到了 LeanCache 的功能,你需要在控制台上创建 LeanCache 实例,复制该项目根目录的 redis.js 到你的项目,并修改其中的 LeanCache 名称。

本地运行 Redis:

  • Mac 运行 brew install redis 安装,然后用 redis-server 启动。
  • Debian/Ubuntu 运行 apt-get install redis-server, CentOS/RHEL 运行 yum install redis.
  • Windows 尚无官方支持。

相关文档

About

云引擎 Node.js 常用功能和示例汇总

Topics

Resources

Stars

111 stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages