{"id":13671592,"url":"https://github.com/Loogeek/douban_Website","last_synced_at":"2025-04-27T18:31:34.619Z","repository":{"id":125506201,"uuid":"43487948","full_name":"Loogeek/douban_Website","owner":"Loogeek","description":"基于NodeJs+MongoDB+jQuery搭建的豆瓣电影音乐网站","archived":false,"fork":false,"pushed_at":"2017-09-02T09:31:12.000Z","size":27458,"stargazers_count":278,"open_issues_count":0,"forks_count":112,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-11T09:43:53.044Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Loogeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-10-01T09:19:47.000Z","updated_at":"2024-09-08T07:12:35.000Z","dependencies_parsed_at":"2023-04-16T10:00:33.629Z","dependency_job_id":null,"html_url":"https://github.com/Loogeek/douban_Website","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Loogeek%2Fdouban_Website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Loogeek%2Fdouban_Website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Loogeek%2Fdouban_Website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Loogeek%2Fdouban_Website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Loogeek","download_url":"https://codeload.github.com/Loogeek/douban_Website/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251187214,"owners_count":21549603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T09:01:14.043Z","updated_at":"2025-04-27T18:31:29.588Z","avatar_url":"https://github.com/Loogeek.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"基于NodeJs+MongoDB+jQuery搭建的豆瓣电影音乐网站\n========================================\n\n## [项目预览地址](http://39.108.179.151:3001)\n\n简介:\n---------------\n本项目电影和音乐首页交互代码是由jQuery完成，下面两个项目将部分交互功能使用模块化进行了重写，提高了阅读性和维护性，可供参考:\n- \u003ca href=\"https://github.com/Loogeek/douban-React\" target=\"\\_blank\"\u003edouban-React\u003c/a\u003e项目中尝试了将部分代码使用React来重写。\n- \u003ca href=\"https://github.com/Loogeek/douban-Vue\" target=\"\\_blank\"\u003edouban-Vue\u003c/a\u003e项目中尝试了将部分代码使用Vue.js进行了重写。\n\n**1. 项目后端搭建:**\n  * 使用`NodeJs的express`框架完成电影网站后端搭建;\n  * 使用`mongodb`完成数据存储,通过`mongoose`模块完成对`mongodb`数据的构建;\n  * 使用`jade`模板引擎完成页面创建渲染;\n  * 使用`Moment.js`格式化电影存储时间;\n\n**2. 项目前端搭建:**\n  * 使用`jQuery`和`Bootsrap`完成网站前端JS脚本和样式处理;\n  * 使用`Sass`完成电影和音乐首页样式的编写;\n  * 使用`validate.js`完成对账号登录注册的判断;\n  * 使用`jQuery lazyload`插件对首页图片的延迟加载;\n  * 使用`fullpage.js`完成电影宣传页面制作;\n  * 前后端的数据请求交互通过`Ajax`完成;\n\n**3. 本地开发环境搭建:**\n  * 使用`gulp`集成`jshint`对JS语法检查，`Sass`文件编译、压缩等功能，使用`mocha`完成用户注册存储等步骤的简单单元测试，以及服务器的自动重启等功能。\n\n**4. 网站整体功能:**\n\n  网站正常访问无需管理原权限，以下网站数据的添加及删除功能需要登录默认管理员账号(**账号:1234 密码:1234**)。\n\n  具体功能可查看网站[动态效果演示](http://7xrqxi.com1.z0.glb.clouddn.com/douban1.gif),gif图片有点大请耐心等待。\n  * 豆瓣电影和音乐相同的展示页面;\n  * 具有用户注册登录及管理;\n  * 电影音乐详情页面添加及删除评论;\n  * 电影音乐及电影院信息录入和搜索;\n  * 电影及音乐分类添加及删除;\n  * 电影及音乐图片海报自定义上传;\n  * 列表分页处理;\n  * 访客统计;\n\n项目整体效果\n-------\n\u003cdiv\u003e\n  \u003cimg src=\"http://oh1orcwqb.bkt.clouddn.com/doubanMovie.jpeg\" width=\"45%\" float\"left\" height=\"700\" alt=\"电影首页\"/\u003e\n  \u003cimg src=\"http://oh1orcwqb.bkt.clouddn.com/doubanMusic.jpeg\" width=\"45%\" float\"left\" height=\"700\" alt=\"音乐首页\"/\u003e\n\u003c/div\u003e\n\u003cdiv text-align=\"center\"\u003e\n  \u003cimg src=\"http://oh1orcwqb.bkt.clouddn.com/doubanDetail.jpeg\" width=\"45%\" alt=\"电影详情\"/\u003e\n\u003c/div\u003e\n\n动态效果演示\n-------\n[动态效果演示](http://oh1orcwqb.bkt.clouddn.com/douban.gif)\n\n运行环境及Node版本:\n-------\n目前在Mac下的node 4.2.x版本运行正常\n\n安装:\n----\n- 安装mongodb(https://www.mongodb.org/downloads#production)完成相关配置;\n- 在当前项目目录中使用npm install命令安装相关模块(\u003ca href=\"http://npm.taobao.org/\" target=\"\\_blank\"\u003e如果模块下载速度慢可考虑使用淘宝cnpm镜像进行下载\u003c/a\u003e);\n\n运行与使用:\n----\n1. 启动数据库`mongod`,如果出现错误尝试输入`sudo mongod`来完成启动\n2. 项目目录下的doubanDatabase是可供选择导入的数据库信息，可通过命令`mongorestore -h host -d dataName --dir=path` 来导入该文件夹信息到数据库中，其中-h是连接地址，如127.0.0.1 -d是将要创建数据库的名称，如douban(注意:项目中链接的数据库名称是douban,如果-d后创建的数据库名称叫douban2,则需要将app.js文件`dbUrl = 'mongodb://127.0.0.1/douban`中的douban改成douban2),--dir=后为该doubanDatabase所在路径，具体可通过`mongorestore --help`查看\n3. 使用命令行工具在该项目目录下使用gulp运行程序,默认是使用3000端口，若端口已占用可在主目录app.js文件中将3000端口换成未占用的端口，当命令行工具看到：Movie started on； port:3000时在游览器中输入localhost:3000即可看到项目电影主页;\n4. doubanDatabase中存储了默认的管理员账号:1234 密码:1234 权限为50，只有当权限大于10才可以访问后台控制页面，可通过修改数据库中users中role值完成用户权限控制。\n\n\n项目页面:\n-------\n当使用管理员账号登录时(默认账号密码均是1234)可在顶部搜索栏下显示各后台控制页面的链接，方便页面切换。\n\n**豆瓣电影首页:** localhost:3000/  \n\n**豆瓣音乐:** localhost:3000/musicIndex\n\n**用户后台页:**\n- 用户注册页面: localhost:3000/signup\n- 用户登陆页面: localhost:3000/signin\n- 用户详情列表页: localhost:3000/admin/user/list\n\n**电影后台页:**\n- 详情页:localhost:3000/movie/:id\n- 后台录入页:localhost:3000/admin/movie/new\n- 列表页:localhost:3000/admin/movie/list\n- 分类录入页:localhost:3000/admin/movie/movieCategory/new\n- 分类页:localhost:3000/admin/movie/movieCategory/list\n- 电影院录入页:localhost:3000/admin/movie/programme/new\n- 电影院列表页:localhost:3000/admin/movie/city/list\n\n**音乐后台页:**\n- 详情页:localhost:3000/music/:id\n- 后台录入页:localhost:3000/admin/music/new\n- 列表页:localhost:3000/admin/music/list\n- 分类录入页:localhost:3000/admin/music/musicCategory/new\n- 分类页:localhost:3000/admin/music/musicCategory/new\n- 热门榜单列表页:localhost:3000/admin/music/programme/list\n\n项目结构:\n----\n```\n├── app.js            项目入口文件\n├── app               Node后端MVC文件目录\n│   ├── controllers   控制器目录\n│   │   ├── movie     电影页面控制器目录\n│   │   ├── music     音乐页面控制器目录\n│   │   └── user      用户列表控制器目录\n│   ├── models        模型目录\n│   │   ├── movie\n│   │   ├── music\n│   │   └── user\n│   ├── schemas       模式目录\n│   │   ├── movie\n│   │   ├── music\n│   │   └── user\n│   └── views         视图文件目录\n│       ├── includes\n│       └── pages\n├── doubanDatabase    供参考的数据库数据\n│   └── douban\n├── node_modules      node模块目录\n├── public            静态文件目录\n│   ├── images        图片目录\n│   │   ├── includes  公共图片目录\n│   │   ├── movie\n│   │   ├── music\n│   │   └── user\n│   ├── libs          经过gulp处理后文件所在目录\n│   │   ├── css\n│   │   ├── images\n│   │   └── scripts\n│   ├── sass          样式目录\n│   │   ├── include\n│   │   ├── movie\n│   │   └── music\n│   ├── scripts       JS脚本目录\n│   │   └── js\n│   └── upload        用户自定义上传图片存储目录\n│       ├── movie\n│       └── music\n├── route             路由目录\n│   └── router.js\n├── test              测试文件目录\n│   └── user\n│       └── user.js\n├── README.md\n├── gulpfile.js       gulp文件\n└── package.json\n```\n\n后期完善:\n-------\n1. 完善网站功能;\n2. 优化项目代码;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLoogeek%2Fdouban_Website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLoogeek%2Fdouban_Website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLoogeek%2Fdouban_Website/lists"}