diff --git a/app.js b/app.js
index 91818f9..fe91d77 100644
--- a/app.js
+++ b/app.js
@@ -6,7 +6,6 @@ var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var mongoStore = require('connect-mongo')(session);
-var mount_uploadify = require('uploadify');
var routes = require('./routes/index');
var users = require('./routes/users');
@@ -43,16 +42,6 @@ app.use(session({
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
-mount_uploadify(app, {
- path: '/fileupload',
- fileKey: 'myfile',
- multer: {
- dest: 'uploads/'
- },
- callback: function(req) {
- return req.files
- }
-});
app.use('/api', api);
app.use('/users', users);
diff --git a/database/db.js b/database/db.js
index d6df30a..56568c6 100644
--- a/database/db.js
+++ b/database/db.js
@@ -1,7 +1,7 @@
var mysql = require('mysql');
var client = mysql.createConnection({
host: '127.0.0.1',
- user: 'test', // mysql的账号
+ user: 'test', // mysql的账号
password: '123456', // mysql 的密码
database: 'mybookmarks',
multipleStatements: true,
@@ -42,15 +42,27 @@ var db = {
// });
db.addBookmark = function(user_id, bookmark) {
- var sql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + bookmark.title + "', '" + bookmark.description + "', '" + bookmark.url + "', '" + bookmark.public + "', '1')";
+ var insertSql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + bookmark.title + "', '" + bookmark.description + "', '" + bookmark.url + "', '" + bookmark.public + "', '1')";
+ var selectSql = "SELECT * FROM `bookmarks` WHERE `user_id` = '" + user_id + "' AND `url` = '" + bookmark.url + "'"
return new Promise(function(resolve, reject) {
- client.query(sql, (err, result) => {
+ client.query(selectSql, (err, result) => {
if (err) {
reject(err);
} else {
- resolve(result.insertId);
+ if (result.length >= 1) {
+ resolve(result[0].id);
+ } else {
+ client.query(insertSql, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result.insertId);
+ }
+ });
+ }
}
});
+
});
};
@@ -294,7 +306,7 @@ db.getAdvices = function(params) {
db.addAdvice = function(params) {
console.log('addAdvice');
- var sql = "INSERT INTO `advices` (`user_id`, `comment`, `category`) VALUES ('"+ params.user_id +"', '"+ params.comment +"', '"+ params.category +"')";
+ var sql = "INSERT INTO `advices` (`user_id`, `comment`, `category`) VALUES ('" + params.user_id + "', '" + params.comment + "', '" + params.category + "')";
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
if (err) {
@@ -330,13 +342,17 @@ db.addTags = function(user_id, tags_name) {
sql += "('" + user_id + "', '" + name + "')";
});
return new Promise(function(resolve, reject) {
- client.query(sql, (err, result) => {
- if (err) {
- reject(err);
- } else {
- resolve(result.insertId);
- }
- });
+ if (tags_name.length == 0) {
+ reject("tags_name is empty");
+ } else {
+ client.query(sql, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result.insertId);
+ }
+ });
+ }
});
};
diff --git a/package.json b/package.json
index 8fe8801..15d95cd 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"express": "~4.13.4",
"express-session": "^1.14.1",
"morgan": "~1.7.0",
+ "multer": "^1.3.0",
"mysql": "^2.11.1",
"node-readability": "^2.2.0",
"serve-favicon": "~2.3.0",
diff --git a/public/css/externe/uploadfile.css b/public/css/externe/uploadfile.css
new file mode 100644
index 0000000..e22bafb
--- /dev/null
+++ b/public/css/externe/uploadfile.css
@@ -0,0 +1,146 @@
+.ajax-file-upload-statusbar {
+border: 1px solid #0ba1b5;
+margin-top: 10px;
+width: 420px;
+margin-right: 10px;
+margin: 5px;
+-moz-border-radius: 4px;
+-webkit-border-radius: 4px;
+border-radius: 4px;
+padding: 5px 5px 5px 15px
+}
+
+.ajax-file-upload-filename {
+width: 300px;
+height: auto;
+margin: 0 5px 5px 0px;
+
+}
+
+.ajax-file-upload-filesize {
+width: 50px;
+height: auto;
+margin: 0 5px 5px 0px;
+display: inline-block;
+vertical-align:middle;
+}
+.ajax-file-upload-progress {
+margin: 5px 10px 5px 0px;
+position: relative;
+width: 250px;
+border: 1px solid #ddd;
+padding: 1px;
+border-radius: 3px;
+display: inline-block;
+color:#FFFFFF;
+
+}
+.ajax-file-upload-bar {
+background-color: #0ba1b5;
+width: 0;
+height: 20px;
+border-radius: 3px;
+color:#FFFFFF;
+
+}
+.ajax-file-upload-percent {
+position: absolute;
+display: inline-block;
+top: 3px;
+left: 48%
+}
+.ajax-file-upload-red {
+-moz-box-shadow: inset 0 39px 0 -24px #e67a73;
+-webkit-box-shadow: inset 0 39px 0 -24px #e67a73;
+box-shadow: inset 0 39px 0 -24px #e67a73;
+background-color: #e4685d;
+-moz-border-radius: 4px;
+-webkit-border-radius: 4px;
+border-radius: 4px;
+display: inline-block;
+color: #fff;
+font-family: arial;
+font-size: 13px;
+font-weight: normal;
+padding: 4px 15px;
+text-decoration: none;
+text-shadow: 0 1px 0 #b23e35;
+cursor: pointer;
+vertical-align: top;
+margin: 5px 10px 5px 0px;
+}
+.ajax-file-upload-green {
+background-color: #77b55a;
+-moz-border-radius: 4px;
+-webkit-border-radius: 4px;
+border-radius: 4px;
+margin: 0;
+padding: 0;
+display: inline-block;
+color: #fff;
+font-family: arial;
+font-size: 13px;
+font-weight: normal;
+padding: 4px 15px;
+text-decoration: none;
+cursor: pointer;
+text-shadow: 0 1px 0 #5b8a3c;
+vertical-align: top;
+margin: 5px 10px 5px 0px;
+}
+.ajax-file-upload {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ padding: 15px 20px;
+ cursor:pointer;
+ line-height:20px;
+ height:25px;
+ margin:0 10px 10px 0;
+ display: inline-block;
+ background: #fff;
+ border: 1px solid #e8e8e8;
+ color: #888;
+ text-decoration: none;
+ border-radius: 3px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -moz-box-shadow: 0 2px 0 0 #e8e8e8;
+ -webkit-box-shadow: 0 2px 0 0 #e8e8e8;
+ box-shadow: 0 2px 0 0 #e8e8e8;
+ padding: 6px 10px 4px 10px;
+ color: #fff;
+ background: #2f8ab9;
+ border: none;
+ -moz-box-shadow: 0 2px 0 0 #13648d;
+ -webkit-box-shadow: 0 2px 0 0 #13648d;
+ box-shadow: 0 2px 0 0 #13648d;
+ vertical-align: middle;
+ }
+
+.ajax-file-upload:hover {
+ background: #3396c9;
+ -moz-box-shadow: 0 2px 0 0 #15719f;
+ -webkit-box-shadow: 0 2px 0 0 #15719f;
+ box-shadow: 0 2px 0 0 #15719f;
+}
+
+.ajax-upload-dragdrop
+{
+
+ border:2px dotted #A5A5C7;
+ width:420px;
+ color: #DADCE3;
+ text-align:left;
+ vertical-align:middle;
+ padding:10px 10px 0px 10px;
+}
+
+.state-hover
+{
+ border:2px solid #A5A5C7;
+}
+.ajax-file-upload-container
+{
+ margin:20px 0px 20px 0px;
+}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index e41f7eb..17f1890 100644
--- a/public/index.html
+++ b/public/index.html
@@ -10,7 +10,7 @@
-
+