使用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 client = mysql.createConnection({
host: '127.0.0.1',
user: 'lcq',
password: 'fendoubuxi596320',
host: '127.0.0.1' || '172.24.13.5',
user: 'lcq' || 'root',
password: 'fendoubuxi596320' || 'root123',
database: 'mybookmarks',
multipleStatements: true,
port: 3306
});
client.connect();
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;

View File

@ -6,11 +6,11 @@ var https = require('https');
var cheerio = require('cheerio');
var request = require('request');
var iconv = require('iconv-lite');
var db = require('./database/db.js');
var db = require('../database/db.js');
var client = mysql.createConnection({
host: '127.0.0.1',
user: 'lcq',
password: 'fendoubuxi596320',
host: '127.0.0.1' || '172.24.13.5',
user: 'lcq' || 'root',
password: 'fendoubuxi596320' || 'root123',
database: 'mybookmarks',
multipleStatements: true,
port: 3306
@ -18,13 +18,6 @@ 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;
@ -64,22 +57,6 @@ api.post('/getTitle', function(req, response) {
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) {
@ -267,55 +244,11 @@ api.post('/addBookmark', function(req, res) {
var params = req.body.params;
var user_id = '1';
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')";
console.log(sql);
client.query(sql, function(err, result) {
if (err) throw err;
var insertId = result.insertId;
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!'
// });
db.insertBookmark(user_id, params) // 插入书签
.then((bookmark_id) => db.insertTagsBookmarks(tags, bookmark_id)) // 插入分类
.then(() => db.updateLastUseTags(user_id, tags)) // 更新最新使用的分类
.then(() => res.json({})) // 运气不错
.catch(() => console.log('fail')); // ops!
});
api.post('/addTags', function(req, res) {