Skip to content

Commit 2b001cf

Browse files
committed
blog_mysql 初步完成
把mongoDB数据库替换成mysql 方便操作
0 parents  commit 2b001cf

File tree

691 files changed

+123815
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

691 files changed

+123815
-0
lines changed

app.js

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
/**
3+
* Module dependencies.
4+
*/
5+
6+
var express = require('express')
7+
, routes = require('./routes')
8+
, user = require('./routes/user')
9+
, http = require('http')
10+
, path = require('path')
11+
, settings = require('./settings')
12+
, flash = require('connect-flash');
13+
14+
var app = express();
15+
16+
app.configure(function(){
17+
app.set('port', process.env.PORT || 3000);
18+
app.set('views', __dirname + '/views');
19+
app.set('view engine', 'ejs');
20+
app.use(flash());
21+
app.use(express.favicon());
22+
app.use(express.logger('dev'));
23+
app.use(express.bodyParser());
24+
app.use(express.methodOverride());
25+
app.use(express.cookieParser());
26+
app.use(express.session({
27+
secret: settings.cookieSecret
28+
}));
29+
app.use(app.router);
30+
app.use(express.static(path.join(__dirname, 'public')));
31+
});
32+
33+
app.configure('development', function(){
34+
app.use(express.errorHandler());
35+
});
36+
37+
app.use(function(req,res,next){
38+
var err = req.flash('error'),
39+
success = req.flash('success');
40+
res.locals.user = req.session.user;
41+
res.locals.error = err.length ? err : null;
42+
res.locals.success = success.length ? success : null;
43+
next();
44+
});
45+
46+
http.createServer(app).listen(app.get('port'), function(err){
47+
console.log("Express server listening on port " + app.get('port'));
48+
});
49+
50+
routes(app);

models/db.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
var settings = require('../settings'),
3+
Db = require('mongodb').Db,
4+
Connection = require('mongodb').Connection,
5+
Server = require('mongodb').Server;
6+
module.exports = new Db(settings.db, new Server(settings.host, Connection.DEFAULT_PORT, {}));
7+
*/
8+
var mysql = require('mysql'),
9+
settings = require('../settings');
10+
var connection = mysql.createConnection({
11+
host : settings.host,
12+
database : 'blog_mysql',
13+
user : 'root',
14+
password : ''
15+
});
16+
connection.connect();
17+
module.exports = connection;
18+
19+
/*
20+
connection.query('SELECT * FROM users', function(err, rows, fields) {
21+
if (err) throw err;
22+
23+
console.log('The solution is: ', rows);
24+
});
25+
26+
connection.end();
27+
*/

models/post.js

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
2+
var mysql = require('./db');
3+
4+
function Post(username, title, post, time) {
5+
this.user = username;
6+
this.title= title;
7+
this.post = post;
8+
if (time) {
9+
this.time = time;
10+
} else {
11+
this.time = new Date();
12+
}
13+
}
14+
Post.prototype.save = function save(callback) {
15+
var post = {
16+
user: this.user,
17+
title:this.title,
18+
post: this.post,
19+
time: this.time,
20+
};
21+
var query = mysql.query('INSERT INTO posts SET ?', post, function(err, result) {
22+
if(err){
23+
callback(err);
24+
}
25+
console.log(result);
26+
callback(err, result);
27+
});
28+
};
29+
//几个路由共用,所以为静态方法
30+
Post.get = function get(username, callback) {
31+
var query = username || '*';
32+
var sql = 'SELECT '+ query +' FROM posts';
33+
mysql.query(sql, function(err, rows, fields) {
34+
if (err) {
35+
callback(err);
36+
}
37+
rows.forEach(function (row, index) {
38+
var now = row.time;
39+
row.time = now.getFullYear() + "-" + (now.getUTCMonth()+1) + "-" + now.getUTCDate();
40+
});
41+
rows.reverse();//倒序排列
42+
callback(null, rows);
43+
});
44+
};
45+
46+
module.exports = Post;
47+

models/user.js

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
var mysql = require('./db');
3+
function User(user){
4+
this.name = user.name;
5+
this.password = user.password;
6+
};
7+
8+
User.prototype.save = function save(callback) {
9+
var post = {
10+
name:this.name,
11+
password: this.password
12+
};
13+
var query = mysql.query('INSERT INTO users SET ?', post, function(err, result) {
14+
if(err){
15+
callback(err);
16+
}
17+
callback(err, result);
18+
});
19+
};
20+
21+
//几个路由共用,所以为静态方法
22+
User.get = function get(username, callback){
23+
var query = username;
24+
var sql = 'SELECT * FROM users WHERE `NAME`= '+ query;
25+
26+
mysql.query(sql, function(err, rows, fields) {
27+
if(err){
28+
callback(err);
29+
}
30+
var row = rows ? rows[0] : [];
31+
callback(err, row);
32+
});
33+
};
34+
35+
module.exports = User;
36+

node_modules/.bin/express

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/express.cmd

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/.npmignore

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/.travis.yml

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/LICENSE

+20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/lib/flash.js

+76
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/lib/index.js

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/connect-flash/package.json

+43
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/ejs/.gitmodules

Whitespace-only changes.

node_modules/ejs/.npmignore

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/ejs/.travis.yml

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)