使用promise改写mysql语句,走出可恶的回调

This commit is contained in:
luchenqun 2016-11-08 17:10:11 +08:00
parent ebab715fc0
commit 4da94566f6
2 changed files with 26 additions and 79 deletions

View File

@ -1,12 +1,13 @@
var mysql = require('mysql'); var mysql = require('mysql');
var client = mysql.createConnection({ var client = mysql.createConnection({
host: '127.0.0.1', host: '127.0.0.1' || '172.24.13.5',
user: 'lcq', user: 'lcq' || 'root',
password: 'fendoubuxi596320', password: 'fendoubuxi596320' || 'root123',
database: 'mybookmarks', database: 'mybookmarks',
multipleStatements: true, multipleStatements: true,
port: 3306 port: 3306
}); });
client.connect(); client.connect();
var db = { var db = {
@ -65,4 +66,17 @@ db.updateLastUseTags = function(user_id, tags) {
}); });
} }
db.clickBookmark = function(id){
var sql = "UPDATE `bookmarks` SET `click_count`=`click_count`+1, `last_click`=now() WHERE (`id`='" + id + "')";
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
if (err) {
reject(err);
} else {
resolve(id);
}
});
});
}
module.exports = db; module.exports = db;

View File

@ -6,11 +6,11 @@ var https = require('https');
var cheerio = require('cheerio'); var cheerio = require('cheerio');
var request = require('request'); var request = require('request');
var iconv = require('iconv-lite'); var iconv = require('iconv-lite');
var db = require('./database/db.js'); var db = require('../database/db.js');
var client = mysql.createConnection({ var client = mysql.createConnection({
host: '127.0.0.1', host: '127.0.0.1' || '172.24.13.5',
user: 'lcq', user: 'lcq' || 'root',
password: 'fendoubuxi596320', password: 'fendoubuxi596320' || 'root123',
database: 'mybookmarks', database: 'mybookmarks',
multipleStatements: true, multipleStatements: true,
port: 3306 port: 3306
@ -18,13 +18,6 @@ var client = mysql.createConnection({
client.connect(); client.connect();
api.post('/getTitle', function(req, response) { 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 params = req.body.params;
var url = params.url; var url = params.url;
@ -64,22 +57,6 @@ api.post('/getTitle', function(req, response) {
title: title || '', title: title || '',
}); });
}) })
// var httpGet = url.indexOf("https") >= 0 ? https : http;
// httpGet.get(url, function(res) {
// var html = '';
// res.on('data', function(data) {
// html += data;
// });
// res.on('end', function() {
// var $ = cheerio.load(html);
// var title = $("title").text();
// console.log(title, response.headers['content-type']);
// response.json({
// title: title || '',
// });
// });
// });
}) })
api.post('/logout', function(req, res) { api.post('/logout', function(req, res) {
@ -267,55 +244,11 @@ api.post('/addBookmark', function(req, res) {
var params = req.body.params; var params = req.body.params;
var user_id = '1'; var user_id = '1';
var tags = params.tags; var tags = params.tags;
var sql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + params.title + "', '" + params.description + "', '" + params.url + "', '" + params.public + "', '1')"; db.insertBookmark(user_id, params) // 插入书签
console.log(sql); .then((bookmark_id) => db.insertTagsBookmarks(tags, bookmark_id)) // 插入分类
client.query(sql, function(err, result) { .then(() => db.updateLastUseTags(user_id, tags)) // 更新最新使用的分类
if (err) throw err; .then(() => res.json({})) // 运气不错
var insertId = result.insertId; .catch(() => console.log('fail')); // ops!
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] + "', '" + insertId + "')";
}
client.query(sql, function(error, result, fields) {
if (error) {
res.json({
error: 'error tags'
});
} else {
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 += ')'
console.log(sql);
client.query(sql, function(error, result1, fields) {
if (error) {
res.json({
error: 'error tags'
});
} else {
res.json({
hello: 'success'
});
}
})
}
})
console.log(result.insertId);
});
// res.json({
// a: 'i love this world, too!'
// });
}); });
api.post('/addTags', function(req, res) { api.post('/addTags', function(req, res) {