diff --git a/database/db.js b/database/db.js
new file mode 100644
index 0000000..ddee633
--- /dev/null
+++ b/database/db.js
@@ -0,0 +1,68 @@
+var mysql = require('mysql');
+var client = mysql.createConnection({
+ host: '127.0.0.1',
+ user: 'lcq',
+ password: 'fendoubuxi596320',
+ database: 'mybookmarks',
+ multipleStatements: true,
+ port: 3306
+});
+client.connect();
+
+var db = {
+
+}
+
+db.insertBookmark = 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')";
+ return new Promise(function(resolve, reject) {
+ client.query(sql, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result.insertId);
+ }
+ });
+ });
+};
+
+db.insertTagsBookmarks = function(tags, bookmard_id) {
+ sql = "INSERT INTO `tags_bookmarks` (`tag_id`, `bookmark_id`) VALUES";
+ for (var i = 0; i < tags.length; i++) {
+ if (i >= 1) {
+ sql += ','
+ }
+ sql += "('" + tags[i] + "', '" + bookmard_id + "')";
+ }
+ return new Promise(function(resolve, reject) {
+ client.query(sql, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ });
+ });
+}
+
+db.updateLastUseTags = function(user_id, tags) {
+ sql = "UPDATE tags SET last_use = NOW() WHERE user_id = '" + user_id + "' AND id in (";
+ for (var i = 0; i < tags.length; i++) {
+ if (i >= 1) {
+ sql += ','
+ }
+ sql += "'" + tags[i] + "'";
+ }
+ sql += ')'
+ return new Promise(function(resolve, reject) {
+ client.query(sql, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ });
+ });
+}
+
+module.exports = db;
diff --git a/routes/api.js b/routes/api.js
index 93e3e0e..5a053d0 100644
--- a/routes/api.js
+++ b/routes/api.js
@@ -4,8 +4,9 @@ var crypto = require('crypto');
var http = require('http');
var https = require('https');
var cheerio = require('cheerio');
-var request = require('request')
-var iconv = require('iconv-lite')
+var request = require('request');
+var iconv = require('iconv-lite');
+var db = require('./database/db.js');
var client = mysql.createConnection({
host: '127.0.0.1',
user: 'lcq',
@@ -17,6 +18,13 @@ var client = mysql.createConnection({
client.connect();
api.post('/getTitle', function(req, response) {
+ // request
+ // .get('https://www.baidu.com/')
+ // .on('response', function(response) {
+ // console.log(response.statusCode) // 200
+ // console.log(response.headers) // 'image/png'
+ // })
+
var params = req.body.params;
var url = params.url;
@@ -30,23 +38,27 @@ api.post('/getTitle', function(req, response) {
}
}
request(options, function(err, res, body) {
- var charset = "utf-8";
- var arr = body.toString().match(/]*?)>/g);
- if (arr) {
- arr.forEach(function(val) {
- var match = val.match(/charset\s*=\s*(.+)\"/);
- if (match && match[1]) {
- if (match[1].substr(0, 1) == '"') match[1] = match[1].substr(1);
- charset = match[1].trim();
- return false;
- }
- })
+ var title = '';
+ if (!err && response.statusCode == 200) {
+ var charset = "utf-8";
+ var arr = body.toString().match(/]*?)>/g);
+ if (arr) {
+ arr.forEach(function(val) {
+ var match = val.match(/charset\s*=\s*(.+)\"/);
+ if (match && match[1]) {
+ if (match[1].substr(0, 1) == '"') match[1] = match[1].substr(1);
+ charset = match[1].trim();
+ return false;
+ }
+ })
+ }
+ var html = iconv.decode(body, charset);
+ var $ = cheerio.load(html, {
+ decodeEntities: false
+ });
+ title = $("title").text();
}
- var html = iconv.decode(body, charset);
- var $ = cheerio.load(html, {
- decodeEntities: false
- })
- var title = $("title").text();
+
console.log(title);
response.json({
title: title || '',