littleAlbumプロジェクトプロセス
6212 ワード
npm init
によりプロジェクトを初期化package.json
ファイルnpm install express --save
express機能パッケージ--saveは、packageに変更情報を更新する.jsonファイル、node_を生成modulesフォルダnpm install ejs --save
var express = require('express');
var app = express();
//
app.set('view engine','ejs');
//
//
app.use(express.static('./public'));
// , ,
//
exports.showIndex = function(req,res,next){
//res.render('index',{albums:[' ',' ',' ']})
}
app.jsファイルに表示メインインタフェースのルーティングを設定する
//
// , ,
//
// ,
app.get('/',router.showIndex)
app.jsにrouterを導入する.js;```var router = require('./controllers');
app.get('/',router.showIndex);
// fs
var fs = require('fs');
exports.showAllAlbum = function(callBack){
//
fs.readdir('./uploads',function(err,files){
if(err){
callBack(' ',null);
return;
};
// ,
//
var albumArr = [];
(function iterator(i){
//
if(i == files.length){
console.log(albumArr);
callBack(null,albumArr);
return;
};
fs.stat('./uploads/',function(err,stats){
if(stats.isDirectory()){
albumArr.push(files[i]);
};
iterartor(i+1);
})
})(0)
})
}
//
var file = require('../models/file.js');
exports.showIndex = function(req,res,next){
//res.render('index',{albums:[' ',' ',' ']})
// showAllAlbum , , ,
// ,
file.showAllAlbum(function(err,albums){
if(err){
next();
return;
};
res.render('index',{
albums:albums;
})
})
}
設定クリック表示フォルダ下ファイル
// , public , public
//
// uploads , ,
// uploads
// node
app.use(express.static('./uploads'));
// , ,
app.get('/:albumName',router.showImages);
exports.showAllImage = function(albumName,callBack){
fs.readdir('./uploads/'+albumName,function(err,files){
if(err){
callBack(' ',null);
return;
};
var imagesArr = []
(function iterator(i){
if(i == files.length){
callBack(null,imagesArr);
console.log(imagesArr);
return;
};
fs.stat('./uploads/'+albumName+'/'+files[i],function(err,stat){
imagesArr.push(files[i]);
});
iterator(i+1);
})(0)
})
}
exports.showImages = function(req,res,next){
//
var albumName = req.params.albumName;
file.showAllImage(albumName,function(err,imagesArray){
if(err){
next();
return;
};
res.render('album',{
albumname:albumName,
images:imagesArray
})
})
}
アップロードインタフェースのルーティングの設定
app.get('/up',router.showUp);
exports.showUp = function(req,res,next){
file.showAllAlbum(function(err,albums){
if(err){
next();
return;
};
res.render('up',{albums:albums})
})
}
ファイルのアップロードの設定
app.post('/up',router.doPost)
npm install formidable --save
を入力formidableツールパッケージをインストールし、router.jsに導入する;tempload
アップロードファイルvar formidable = require('formidable');
exports.doPost = function(req,res,next){
var form = new formidable.IncomingForm();
//
// node , , ,
form.uploadDir('./tempload');
// , parse
form.parse(req,function(err){
if(err){
next();
return;
};
res.send('success');
})
}
表示エラーページの設定
// , , , get post,
// , use, ,
// use(funtion)
app.use('/',function(req,res){
res.render('err');
})