一个简单的express项目用到的知识点

/**
*分页程序非常重要
*
*/
$(document).ready(function() {
        if($("#pagination")){
            var pagecount=<%=pageCounts %>;
             var pagesize=<%=pageSize %>;
             var currentpage=<%=currentpage %>;
             var counts,pagehtml="";
             if(pagecount%pagesize==0){
                counts = parseInt(pagecount/pagesize);
             }else{
                counts = parseInt(pagecount/pagesize)+1;
             }
             //只有一页内容
             if(pagecount<=pagesize){pagehtml="";}
             //大于一页内容
                 if(pagecount>pagesize){
                     if(currentpage>1){
                        pagehtml+= '
  • 上一页
  • '; } for(var i=0;i= (currentpage - 3) && i < (currentpage + 3)) { if (i == currentpage - 1) { pagehtml += '
  • ' + (i + 1) + '
  • '; } else { pagehtml += '
  • ' + (i + 1) + '
  • '; } } } if(currentpage下一页'; } } $(".pagination").html(pagehtml); } }); /** * 增加路由中间件,实现过滤器 */ function checkLogin(req,res,next){ if(!req.session.user){ return res.redirect('/login'); } next(); } function checkNotLogin(req,res,next){ if(req.session.user){ return res.redirect('back'); //**注意此处返回到开始页 } next(); } //过滤 app.get('/post',checkLogin); app.get('/post',function(req,res){ console.log('发布!'); res.render('post',{ title:'发布' }); }); /** *可以在连接中加参数 * */ app.get('/u/:name/:day/:title',function(){ Post.getOne(req.params.name,req.params.day,req.params.title,function(){ if(err){ req.flash('err',err); return res.redirect('/'); } res.render('article',{ title:req.params.title, post:post, user:req.session.user, success:req.flash('success').toString(), error:req.flash('error').toString }) }); }); /** *ejs 遍历数组 */ <% post.comments.forEach(function (comment, index) { %>

    <%= comment.name %> 回复于 <%= comment.time %>

    <%- comment.content %>

    <% }) %> /** *md5加解密 */ var crypto=require('crypto'); //加密 var md5=crypto.createHash('md5'), md5Password=md5.update(password).digest('hex'); if(user.password!==md5Password){ console.log('密码错误!'); return res.redirect('/login'); } /** *session 会话的控制 */ var session = require('express-session'); app.use(session({ secret: settings.cookieSecret, key: settings.db,//cookie name cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days store: new MongoStore({ db: settings.db, host: settings.host, port: settings.port }) })); /** * 一些通用设置 */ //定义EJS模板引擎和模板文件位置*** app.set('views',path.join(__dirname,'views')); app.set('view engine','ejs');//还可以定义其他模板引擎 //定义静态文件的位置 app.use(express.static(path.join(__dirname,'public'))); /* *非常重要用于404拦截 */ app.use(function(req,res){ res.render("404"); }); app.use('/',function(req,res){ res.render("404"); }); express模块可以中间话 /** *日志拦截处理 */ var logger = require('morgan'); var fs = require('fs'); var accessLog = fs.createWriteStream('access.log', {flags: 'a'}); var errorLog = fs.createWriteStream('error.log', {flags: 'a'}); app.use(logger('dev')); app.use(logger({stream: accessLog})); //当错误发生时会拦截执行 app.use(function(err,req,res,next){ var meta='['+new Data()+']'+req.url+'\n'; errorLog.write(meta+err.stack+'\n'); next(); }); /** *Ajax请求与处理 */ app.get("/noteDetail",function(req,res){ var id=req.query.id; console.log("请求的ID为:"+id); Note.findOne({_id:id},function(err,note){ if(err){ console.log(err); return res.redirect('/'); } console.log(note); res.json(note); res.end(); }); }); //给超链接添加点击事件 $(".table a").each(function(){ $(this).click(function(){ var params={id:$(this).attr("id")}; $.ajax({ data: params, url: '/noteDetail', dataType: 'json', cache: false, timeout: 5000, success: function(data){ $("#note_title").text(data.title); $("#note_time").text(data.createtime); $("#note_content").text(data.cointent); $('#myModal').modal('toggle'); }, error: function(jqXHR, textStatus, errorThrown){ alert('error ' + textStatus + " " + errorThrown); } }); }); }); //生产环境部署 //mongodb后台运行 //配置文件 vi mongodb.conf 配置信息如下: dbpath = /data/test/db #数据文件存放目录 logpath = /data/test/logs/mongodb.log #日志文件存放目录 port = 27017 #端口 fork = true #以守护程序的方式启用,即在后台运行 nohttpinterface = true //启动 ./mongod --config mongodb.conf //后台进程启用 $ sudo npm install forever -g #安装 $ forever start app.js #启动 $ forever stop app.js #关闭 $ forever start -l forever.log -o out.log -e err.log app.js #输出日志和错误

    你可能感兴趣的:(一个简单的express项目用到的知识点)