• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Node.js sample program: tiny blog application


Commit MetaInfo

修訂b693b486ae6e0a3935c4910d4346b3672fa05d57 (tree)
時間2012-11-29 00:13:06
作者hylom <hylom@hylo...>
Commiterhylom

Log Message

restructure codes

Change Summary

差異

--- a/models/database.js
+++ b/models/database.js
@@ -27,9 +27,10 @@ Database.prototype.query = function (query, params, callback) {
2727
2828 // クエリを終了する
2929 Database.prototype.end = function (callback) {
30- var client = this._getClient();
31- client.end(callback);
32- delete this.client;
30+ if (this.client) {
31+ this.client.end(callback);
32+ delete this.client;
33+ }
3334 }
3435
3536 // Databaseクラスのインスタンスを作成する
--- a/models/stories.js
+++ b/models/stories.js
@@ -86,19 +86,3 @@ stories.getLatest = function (count, skip, callback) {
8686 callback(null, results);
8787 });
8888 };
89-
90-// 記事数を取得する
91-stories.count = function (callback) {
92- db.query(
93- 'SELECT COUNT(*) FROM stories',
94- [],
95- function(err, results, fields) {
96- db.end();
97- if(err) {
98- callback(err);
99- return;
100- }
101- callback(results[0]['COUNT(*)']);
102- });
103-}
104-
--- a/models/users.js
+++ b/models/users.js
@@ -40,26 +40,6 @@ function _hashPassword(password) {
4040 shasum.update(password);
4141 return shasum.digest('hex');
4242 }
43-
44-// ユーザー名からアカウント情報を取得する
45-users.getByUsername = function (name, callback) {
46- db.query('SELECT * FROM users WHERE name = ?',
47- [name,], queryCallback);
48- function qurryCallback(err, results, fields) {
49- db.end();
50- if (err) {
51- callback(err, undefined);
52- return;
53- }
54- if (results && (results.length > 0)) {
55- userInfo = results[0];
56- delete userInfo.password;
57- callback(false, userInfo);
58- } else {
59- callback(false, null);
60- }
61- }
62-}
6343
6444 // ユーザーを作成する
6545 users.createUser = function (name, password, callback) {
--- a/routes/index.js
+++ b/routes/index.js
@@ -8,14 +8,11 @@ var stories = require('../models/stories');
88
99 // ログイン処理を行う
1010 exports.login = function (req, res) {
11- var name = req.body.name || '';
12- var password = '';
13-
1411 // GETリクエストに対する処理
1512 res.render('login', {
1613 page: { title: 'login' },
17- user: req.session.user || null,
18- name: name,
14+ user: null,
15+ name: '',
1916 error: 200,
2017 loginFailed: false
2118 });
@@ -32,7 +29,7 @@ exports.login.post = function (req, res) {
3229 // 認証に失敗
3330 res.render('login', {
3431 page: { title: 'login' },
35- user: req.session.user || null,
32+ user: null,
3633 name: name,
3734 error: 200,
3835 loginFailed: true
@@ -94,6 +91,8 @@ exports.create.post = function(req, res) {
9491
9592 // インデックスページの表示
9693 exports.index = function(req, res){
94+ // req.queryオブジェクトには文字列でクエリに関する情報が格納されているので
95+ // Number関数で数値に変換しておく
9796 var pageNum = Number(req.query.page) || 1;
9897 var count = 10;
9998 var skip = count * (pageNum - 1);
@@ -123,7 +122,7 @@ exports.index = function(req, res){
123122 }
124123 }
125124
126- // テンプレートに与えるパラメータ
125+ // テンプレートに与えるパラメータを用意する
127126 var params = {
128127 page: {
129128 title: 'nblog',
@@ -134,7 +133,7 @@ exports.index = function(req, res){
134133 stories: items,
135134 request: req
136135 };
137- console.log(params);
136+ // indexテンプレートをレンダリングする
138137 res.render('index', params);
139138 });
140139 };
--- a/views/index.jade
+++ b/views/index.jade
@@ -7,14 +7,10 @@ block content
77 .pagination
88 ul
99 if page.previous
10- li
11- a(href=page.previous) Prev
10+ li: a(href=page.previous) Prev
1211 else
13- li.disabled
14- a Prev
12+ li.disabled: a Prev
1513 if page.next
16- li
17- a(href=page.next) Next
14+ li: a(href=page.next) Next
1815 else
19- li.disabled
20- a Next
16+ li.disabled: a Next
--- a/views/layout.jade
+++ b/views/layout.jade
@@ -12,8 +12,7 @@ html
1212 header
1313 .container
1414 hgroup
15- h1
16- a(href='/') nblog
15+ h1: a(href='/') nblog
1716 .description simple blog system
1817 .container
1918 #main