Merge branch 'master' of github.com:luchenqun/my-bookmark

This commit is contained in:
luchenqun 2017-05-01 16:11:09 +08:00
commit 84d633ebe1
4 changed files with 15 additions and 11 deletions

View File

@ -32,11 +32,11 @@
4 主要用到的模块说明 4 主要用到的模块说明
------------------ ------------------
**NodeJS**`v6.6.0` 用来做后台服务。 **Node.js**`v6.6.0` 用来做后台服务。
**MySql**: `v5.17.7`用来做数据存储。 **MySQL**: `v5.17.7`用来做数据存储。
**AngularJS**前端JavaScript框架。 **AngularJS**前端JavaScript框架。
**jQuery**: 本来用了AngularJS是不需要再使用jQuery了的。但是有些功能AngularJS要大费周章才能完成jQuery一句代码就能解决。所以还是忍不住将它导入了进来。 **jQuery**: 本来用了AngularJS是不需要再使用jQuery了的。但是有些功能AngularJS要大费周章才能完成jQuery一句代码就能解决。所以还是忍不住将它导入了进来。
**mongodb**`v2.6.10`后台保存登陆的session。 **MongoDB**`v2.6.10`后台保存登陆的session。
**Semantic**由于没有美工人员自己开发的不想界面太丑用了这套UI。 **Semantic**由于没有美工人员自己开发的不想界面太丑用了这套UI。
5 目录结构 5 目录结构
@ -128,11 +128,11 @@ my-bookmark/
├── README.md # 项目工程说明文件 ├── README.md # 项目工程说明文件
└── schema.sql # mysql数据库建表文件 └── schema.sql # mysql数据库建表文件
``` ```
6 用到的nodejs模块说明 6 用到的Node.js模块说明
-------------------- --------------------
``` ```
"body-parser": bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理 "body-parser": bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理
"connect-mongo": 用于将session存入mongo "connect-mongo": 用于将session存入MongoDB
"cookie-parser": 处理每一个请求的cookie "cookie-parser": 处理每一个请求的cookie
"crypto": 加密模块,主要用来加密用户的密码 "crypto": 加密模块,主要用来加密用户的密码
"debug": 这个好像没用到,看名字好像调试的。 "debug": 这个好像没用到,看名字好像调试的。
@ -140,7 +140,7 @@ my-bookmark/
"express": Web 应用程序框架 "express": Web 应用程序框架
"express-session": session模块 "express-session": session模块
"jsdom": 用来解析从浏览器导出来上传到服务器的书签html文件 "jsdom": 用来解析从浏览器导出来上传到服务器的书签html文件
"morgan": 一个node.js关于http请求的日志中间件 "morgan": 一个Node.js关于http请求的日志中间件
"multer": 文件上传模块 "multer": 文件上传模块
"mysql": sql数据库操作模块 "mysql": sql数据库操作模块
"node-readability": 获取网页title(添加书签用到)跟内容(书签详情用到)模块。 "node-readability": 获取网页title(添加书签用到)跟内容(书签详情用到)模块。
@ -151,8 +151,8 @@ my-bookmark/
7 安装部署指南 7 安装部署指南
------------- -------------
1、安装MySql数据库。如果不会请戳教程[mysql 数据库安装教程](http://let-me-teach-you-baidu.luchenqun.com/?mysql%20%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B "mysql 数据库安装教程")。有点需要注意的是MySql的版本至少要是5.6。否则执行schema.sql文件会出错。 1、安装MySQL数据库。如果不会请戳教程[MySQL 数据库安装教程](http://let-me-teach-you-baidu.luchenqun.com/?mysql%20%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B "mysql 数据库安装教程")。有点需要注意的是MySQL的版本至少要是5.6。否则执行schema.sql文件会出错。
2、新建一个数据库名使用mysql将根目录下面的schema.sql文件执行一遍创建数据库表格。有个问题尤其要注意**数据库一定要使用UTF-8的编码**否则执行一些汉字的sql语句会出错如果是Ubuntu大概过程如下。 2、新建一个数据库名使用MySQL将根目录下面的schema.sql文件执行一遍创建数据库表格。有个问题尤其要注意**数据库一定要使用UTF-8的编码**否则执行一些汉字的sql语句会出错如果是Ubuntu大概过程如下。
``` ```
mysql -u root -p // 使用root账号进入mysql数据库。按回车之后输入安装时候root的密码。 mysql -u root -p // 使用root账号进入mysql数据库。按回车之后输入安装时候root的密码。
CREATE DATABASE mybookmarks DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; // 创建mybookmarks数据库。 CREATE DATABASE mybookmarks DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; // 创建mybookmarks数据库。
@ -162,7 +162,7 @@ use mybookmarks; //选择刚创建的数据库。
source /home/lcq/schema.sql; // 执行schema.sql文件创建数据库表格。注意将路径换为你schema.sql所在路径。 source /home/lcq/schema.sql; // 执行schema.sql文件创建数据库表格。注意将路径换为你schema.sql所在路径。
``` ```
3、安装MongoDB 安装教程。如果不会,请戳教程[MongoDB 安装教程](http://let-me-teach-you-baidu.luchenqun.com/?MongoDB%20%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B "MongoDB 安装教程")安装完成之后如果MongoDB没有启动请启动MongoDB。 3、安装MongoDB 安装教程。如果不会,请戳教程[MongoDB 安装教程](http://let-me-teach-you-baidu.luchenqun.com/?MongoDB%20%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B "MongoDB 安装教程")安装完成之后如果MongoDB没有启动请启动MongoDB。
4、安装Nodejs。Nodejs版本至少要求6.0以上。不会的话请按照上面步骤1、3提供的方法自行解决。 4、安装Node.js。Node.js版本至少要求6.0以上。不会的话请按照上面步骤1、3提供的方法自行解决。
5、克隆代码`git@github.com:luchenqun/my-bookmark.git`,切换到项目根目录下面,执行`npm install`安装package。 5、克隆代码`git@github.com:luchenqun/my-bookmark.git`,切换到项目根目录下面,执行`npm install`安装package。
6、更新/database/db.js文件的dbConfig配置将你mysql的数据信息更新上去。 6、更新/database/db.js文件的dbConfig配置将你mysql的数据信息更新上去。
7、如果上面的都做好了在项目根目录下面执行`node ./bin/www`,如果是开发,可以使用`npm start`。 7、如果上面的都做好了在项目根目录下面执行`node ./bin/www`,如果是开发,可以使用`npm start`。

View File

@ -326,6 +326,10 @@ app.controller('tagsCtr', ['$scope', '$filter', '$window', '$stateParams', '$tim
$scope.addTag = function(tag) { $scope.addTag = function(tag) {
console.log(tag); console.log(tag);
if($scope.tags.length >= 30){
toastr.error('标签个数总数不能超过30个不允许再添加新分类如有需求请联系管理员。', "提示");
return;
}
tag = tag.replace(/(^\s*)|(\s*$)/g, '').replace(/\s+/g, ' '); // 去除前后空格,多个空格转为一个空格; tag = tag.replace(/(^\s*)|(\s*$)/g, '').replace(/\s+/g, ' '); // 去除前后空格,多个空格转为一个空格;
if (tag) { if (tag) {
ngDialog.close(dialog); ngDialog.close(dialog);

View File

@ -3,7 +3,7 @@
<h3 class="ui dividing header">赞赏说明</h3> <h3 class="ui dividing header">赞赏说明</h3>
<p>赞赏金额主要用于服务器的租用与域名的费用,对于赞赏有以下几点说明:</p> <p>赞赏金额主要用于服务器的租用与域名的费用,对于赞赏有以下几点说明:</p>
<p>1、目前租用的服务器Vultr每月5$折合人名币大概35元/月。如果有新用户想购买Vultr服务器的可以点击<a href="http://www.vultr.com/?ref=6902013" target="_blank">链接</a>进行购买这样你我将都能得到10$。域名mybookmark.cn我花151元买了五年2021年11月份到期。</p> <p>1、目前租用的服务器Vultr每月5$折合人名币大概35元/月。如果有新用户想购买Vultr服务器的可以点击<a href="http://www.vultr.com/?ref=6902013" target="_blank">链接</a>进行购买这样你我将都能得到10$。域名mybookmark.cn我花151元买了五年2021年11月份到期。</p>
<p>2、由于目前的服务器在国外导致有时候访问比较慢如果赞赏金融余额超过1000将在国内租用一个服务器提高访问速度。如果有能提供国内免费服务器的更佳!</p> <p>2、由于目前的服务器在国外导致有时候访问比较慢如果赞赏金融余额能支撑起在国内租用服务器费用,将在国内租用一个服务器,以提高访问速度。如果有能提供国内免费服务器的更佳!</p>
<p>3、对于开发计划优先开发赞赏用户提出的需求当然需要我自己同意加入开发计划。</p> <p>3、对于开发计划优先开发赞赏用户提出的需求当然需要我自己同意加入开发计划。</p>
<p>4、赞赏用户的一些其他特权暂未开发可以自定义网站背景可自定义更多的分类目前上限为30个</p> <p>4、赞赏用户的一些其他特权暂未开发可以自定义网站背景可自定义更多的分类目前上限为30个</p>
<p>5、赞赏转账的时候请留言至少添加“书签赞赏”这四个汉字以供我做区分。赞赏之后我会及时将赞赏信息更新到网站上如果有遗漏可联系我微信QQ530485521或者在留言版块说明。</p> <p>5、赞赏转账的时候请留言至少添加“书签赞赏”这四个汉字以供我做区分。赞赏之后我会及时将赞赏信息更新到网站上如果有遗漏可联系我微信QQ530485521或者在留言版块说明。</p>

View File

@ -10,7 +10,7 @@
</div> </div>
</div> </div>
<div class="ui container" ng-show="editMode" ng-mousedown="storeTagIndex()" ng-mouseup="updateTagIndex()"> <div class="ui container" ng-show="editMode" ng-mousedown="storeTagIndex()" ng-mouseup="updateTagIndex()">
<p>提示:拖拽分类即可进行排序</p> <p>提示:拖拽分类即可进行排序。如果添加新的分类,返回之后不会显示添加的分类,因为默认只显示有书签的分类。</p>
<div class="ui six stackable cards" sv-root sv-part="tags"> <div class="ui six stackable cards" sv-root sv-part="tags">
<div class="card" ng-repeat="tag in tags" id="tag{{tag.id}}" sv-element> <div class="card" ng-repeat="tag in tags" id="tag{{tag.id}}" sv-element>
<div class="content"> <div class="content">