安装 express
目录结构
- controller 暴露 显示某个页面
- models 写主要逻辑方法,读文件,连库
- public 静态资源文件
- views 模板文件
- app.js 入口文件
- package.json …
写入口文件
app.use(express.static("./public"));
//静态文件目录
app.get("/",router.showIndex);
//设置路由跳转的目录
//输出展示的首页
exports.showIndex = function (req,res,next) {
//内层函数,不是return回来东西,而是调用高层函数提供的回调函数。把数据当做回调函数的参数来使用。
var des = "花千束"
file.getAllAlbum(function (err,allAlabums) {
if(err){
//如果错误,执行下一个
next();
return;
}
//渲染 views/index模板 并给模板传参数
res.render("index",{
"albums":allAlabums,
"description":des
})
})
}
//读文件
exports.getAllAlbum = function (callback) {
fs.readdir("./uploads",function (err,files) {
var allAlbums = [];
if(err){
callback("没有找到uploads文件",null);
return;
}
//迭代器 立即执行函数 (function(){})()
(function iterator(i) {
if(i == files.length){
//文件读取完毕 返回allAlbums(文件夹)
callback(null,allAlbums);
return;
}
//检测文件是否存在
fs.stat("./uploads/"+files[i],function (err,stats) {
if(err){
callback("找不到文件"+files[i],null);
return;
}
//判断是文件夹
if(stats.isDirectory()){
allAlbums.push(files[i])
}
//调用自身 类似递归函数
iterator(i+1);
})
})(0)
})
}