137 lines
5.2 KiB
JavaScript
137 lines
5.2 KiB
JavaScript
var api = require('express').Router();
|
|
var mysql = require('mysql');
|
|
var client = mysql.createConnection({
|
|
host: '172.24.13.5',
|
|
user: 'root',
|
|
password: 'root123',
|
|
database: 'mybookmarks',
|
|
multipleStatements: true,
|
|
port: 3306
|
|
});
|
|
// var client = mysql.createConnection({
|
|
// host: '127.0.0.1',
|
|
// user: 'lcq',
|
|
// password: '123456',
|
|
// database: 'mybookmarks',
|
|
// multipleStatements: true,
|
|
// port: 3306
|
|
// });
|
|
client.connect();
|
|
|
|
api.get('/bookmarks', function(req, res) {
|
|
console.log('hello bookmarks', JSON.stringify(req.query));
|
|
if (req.query.show === 'navigate') {
|
|
var sql = "SELECT t.id as tag_id, t.name as tag_name, b.* FROM `tags` as t LEFT OUTER JOIN tags_bookmarks as tb ON t.id = tb.tag_id LEFT OUTER JOIN bookmarks as b ON tb.bookmark_id = b.id ORDER BY t.id ASC, b.click_count DESC";
|
|
client.query(sql, function(error, result, fields) {
|
|
var data = [];
|
|
var tag = {
|
|
id: result && result[0] && result[0].tag_id,
|
|
name: result && result[0] && result[0].tag_name,
|
|
bookmarks: []
|
|
};
|
|
result.forEach(function(bookmark) {
|
|
if (tag.id !== bookmark.tag_id) {
|
|
data.push({
|
|
id: tag.id,
|
|
name: tag.name,
|
|
bookmarks: tag.bookmarks
|
|
});
|
|
tag.id = bookmark.tag_id;
|
|
tag.name = bookmark.tag_name;
|
|
tag.bookmarks = [];
|
|
}
|
|
tag.bookmarks.push(bookmark);
|
|
});
|
|
if (result && result.length > 0) {
|
|
data.push(tag);
|
|
}
|
|
res.json(data);
|
|
})
|
|
} else {
|
|
var sqlBookmarks = "SELECT id, user_id, title, description, url, public, click_count, DATE_FORMAT(created_at, '%Y-%m-%d') as created_at, DATE_FORMAT(last_click, '%Y-%m-%d') as last_click FROM `bookmarks` WHERE user_id='1' ORDER BY click_count DESC, created_at DESC LIMIT 0, 50";
|
|
var sqlTags = "SELECT id, name FROM `tags` WHERE user_id='1'";
|
|
|
|
client.query(sqlBookmarks, function(error, result1, fields) {
|
|
if (error) {
|
|
res.json({
|
|
error: "数据查询出错"
|
|
});
|
|
} else {
|
|
var bookmark_ids = ''
|
|
result1.forEach(function(bookmark) {
|
|
bookmark_ids += "'" + bookmark.id + "',";
|
|
})
|
|
bookmark_ids = bookmark_ids.slice(0, bookmark_ids.length - 1);
|
|
|
|
var sqlTagIdBookmarkId = "SELECT * FROM `tags_bookmarks` WHERE bookmark_id in(" + bookmark_ids + ")";
|
|
client.query(sqlTagIdBookmarkId, function(error, result2, fields) {
|
|
// console.log(result2);
|
|
if (error) {
|
|
res.json({
|
|
error: "数据查询出错"
|
|
});
|
|
} else {
|
|
client.query(sqlTags, function(error, result3, fields) {
|
|
// console.log(result3);
|
|
if (error) {
|
|
res.json({
|
|
error: "数据查询出错"
|
|
});
|
|
} else {
|
|
var data = [];
|
|
result1.forEach(function(bookmark) {
|
|
var tags = [];
|
|
result2.forEach(function(bookmark_tag) {
|
|
if (bookmark_tag.bookmark_id == bookmark.id) {
|
|
result3.forEach(function(tag) {
|
|
if (bookmark_tag.tag_id == tag.id) {
|
|
tags.push(tag)
|
|
}
|
|
})
|
|
}
|
|
});
|
|
bookmark.tags = tags;
|
|
data.push(bookmark);
|
|
})
|
|
res.json(data);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
api.get('/tags', function(req, res) {
|
|
console.log('hello tags', JSON.stringify(req.query));
|
|
var user_id = req.query.user_id;
|
|
var sql = "SELECT id, name FROM `tags` WHERE `user_id` = '" + user_id + "'"
|
|
client.query(sql, function(error, result, fields) {
|
|
if (error) {
|
|
res.json({
|
|
error: 'error tags'
|
|
});
|
|
} else {
|
|
res.json(result);
|
|
}
|
|
})
|
|
});
|
|
|
|
api.post('/addBookmark', function(req, res) {
|
|
console.log('hello addBookmark', JSON.stringify(req.query), JSON.stringify(req.body));
|
|
res.json({
|
|
a: 'i love this world, too!'
|
|
});
|
|
});
|
|
|
|
api.post('/addTags', function(req, res) {
|
|
console.log('hello addTags', JSON.stringify(req.query), JSON.stringify(req.body));
|
|
res.json({
|
|
a: 'i love this world, too!'
|
|
});
|
|
});
|
|
// client.end();
|
|
|
|
module.exports = api;
|