# alljs **Repository Path**: hesu/alljs ## Basic Information - **Project Name**: alljs - **Description**: 一个完全使用 javascript 语言开发的网站原型。使用前端 javascript 和后端 node.js,并通过 cordova 兼容 webapp,使用 mongodb 和 redis 实现全 json 数据存储和数据流,实现和验证了大量的网站技术。 - **Primary Language**: NodeJS - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-06-09 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Alljs User Guide 一个完全使用 javascript 语言开发的网站原型。 使用前端 javascript 和后端 node.js,并通过 cordova 兼容H5APP,使用 mongodb 和 redis 的全 json 数据存储和数据流。 实现和验证了大量的网站建站技术: 包括常用建站技术:express、connection-pool、webpack、Pollyfill、twitter-bootstrap、websocket、js代码打包、等等... 包括常用网站功能:Cookie&Session、网页端/手机端SSO、图形验证码、推送服务、短信服务、邮件服务、微信公众号接入、用户访问日志、站点监控与管理、热度搜索、等等... ## 基本配置 1. 右键 cmd 打开属性,在 目标的最后面,修改路径为 项目根目录的真实路径。在之后的步骤中,"命令行进入项目根目录" 可采用打开 cmd 的方法进入。 2. 安装 nodejs 和 npm,命令行进入项目根目录,运行 npm install,完毕后再运行 fix-file.bat。 3. 在项目根目录下创建文件夹:data、data\db、data\html、data\pub、data\up、data\up_tmp。 ## 配置和启动 redis 服务 4. 安装 redis 和 redis desktop manager。 5. 使用文本编辑工具打开 redis.bat,修改其中 redis 和项目位置的路径为真实路径。 6. 使用文本编辑工具打开 redis.windows-service.conf, 修改其中的 239行和156行 为真实路径。(注意使用正斜杠) 7. 运行 redis.bat,确保执行成功。 (该 bat 有时会卡在安装服务的命令上,此时可以手动打开 services.msc 启动服务“Redis”) 8. redis 的参数配置在“config/redis.json”中。 ## 配置和启动 mongodb 服务 9. 安装 mongodb(不推荐装附带的 mongodb compass) 和 robo3t。 10. 使用文本编辑工具打开 db.bat,修改其中 mongod 和项目位置的路径为真实路径。 11. 运行 db.bat,确保执行成功。 12. mongodb 的参数配置在“config/mongodb.json”中。 ## 添加数据库初始数据 13. 打开 robot3t,连接 本地的 mongodb 数据库。 14. 在 robot3t 中新建数据库“alljs”(注意大小写)。 15. 在 alljs 数据库中新建 Collections:meta,user,behavior,article,comment,fond,feedback。 16. 在 meta 中插入一个文档,如下: ``` { "key" : "blocks", "val" : {"" : "alljs root"} } ``` ## 启动和配置网站 17. 命令行进入项目根目录,运行 npm run start。 18. 打开浏览器,打开网址 "localhost",可见网站已启动。 19. 网站的参数配置(端口等)在“config/server.json”中。 ## 设置超级管理员 20. 注册新用户 admin。 21. 打开网址 http://localhost/admin.html ,点击“升级为管理员”。 22. 打开网址 http://localhost/block.html ,点击“添加根板块”,板块名称为“快乐加油站”,目录名为“fun”。 23. 在“Alljs社区”板块下,新建多个子目录:“新人报道区”(目录名 fun/newman),“闲聊区”(目录名 fun/chat),“动图区”(目录名 fun/animate)。 24. 点击“保存配置”。打开网址 http://localhost/fun ,即可看见已生成的板块和区。 ## 启动和停止网站 25. 步骤15的 npm run start 可以启动网站,停止网站则在命令行中运行 Ctrl+C。 26. 如果需要长期运行网站,可以通过 npm run forever,停止网站为 npm run nolonger,重启网站为 npm run reforever。也可以直接在根目录中运行相应的 bat。 27. 停止网站还可以使用 http://localhost/admin.html 中的“关闭站点服务实例”。 ## 加密管理网站功能 28. 打开“routes/dyn.adminFunction.js”,修改其中的 '/admin...' 为一个秘密网址,重启网站。(该文件的其它 post 服务也建议修改路径,但要同时修改 public/dyn.admin.html 中对应的路径) 29. 给 mongodb 数据库设置密码或修改端口号,然后配置“config/mongodb.json”中的 port 和 password,重启网站。 30. 配置“config/session.json”中的 secret 为一个密码,配置“config/sign.json”中的 secret 为一个密码,重启网站。 ## 设置板块管理员 31. 板块管理员只能管理自己板块的文章/评论。 32. 注册一个新用户,设用户名为 funadmin。 33. 登录原来的 admin 管理员账户,打开网址 http://localhost/fun/manageEverything.html?col=user ,找到 用户名为 funadmin 的那一行,点击 see 的那个眼睛,进入该用户信息页面。 34. 在 funadmin 的信息页面,点击右上角“升为子站管理员”,即可设置 funadmin 为 fun子站 的管理员。 ## 监控网站状况 35. 使用管理员账户打开网址 http://localhost/sitemonitor.html 。里面有两个表格,上面那个为当前比较活跃用户(并会通过 websocket 动态更新),下面的表格为网站日志,点击“提交”可以刷新。 36. 在当前活跃会话中,ses_active 为会话活跃度,ip_active 为该ip的活跃度,点击其右侧的“^^”和“vv”可以手动增减其活跃度。 37. 活跃度呈时间相关的指数式衰减。敏感请求提升的活跃度较大,非敏感请求提升的活跃度较小。 38. 异常活跃的用户可能在进行非法操作或黑客攻击。 39. 当活跃度大于 150 时,会出现在 sitemonitor.html 的表格中,当活跃度大于 750 时,会自动屏蔽该用户。配置参数在“config\monitor.json”中。 ## 审核发布信息 40. 使用管理员账户或板块管理员账户,打开网址 http://localhost/fun/publishaudit.html ,会出现 fun 子站 最近12小时发布的 文章/评论/反馈(并会通过 websocket 动态更新),可以直接在该页面进行屏蔽或删除。 ## 添加短信和邮件服务支持 41. 项目测试通过了“容联.云通讯”的短信验证码服务,请参考网上的教程。配置参数在“config\sms.json”中。 42. 项目测试通过了“qq邮箱”的邮件服务,请参考网上的教程。配置参数在“config\mail.json”中。 ## 板块首页热度排序 43. 板块首页的文章列表经过热度排序。文章的热度呈时间相关的指数式衰减。排序的配置参数在“config\heatQuery.json”中。