zoukankan      html  css  js  c++  java
  • [nodejs] nodejs开发个人博客(二)入口文件

    错误处理中间件

    定义错误处理中间件必须使用4个参数,否则会被作为普通中间件

    /*错误处理器*/
    application.use(function(err,req,res,next){
      console.error(err.stack);
      res.status(500).send("代码出错了,错误信息:<br/>"+err.stack);
    });
    /*404*/
    application.use(function(req,res,next){
      res.status(404).send("404页面被火星人挖走了");
    });

    创建文件结构

    公共文件夹(common),控制器文件夹(controller),模型文件夹(model),视图文件夹(view),静态资源文件夹(static)

    定义配置文件和函数文件并载入

    配置文件common/config.js

    /**
    * 公共配置文件
    */
    module.exports={
        DB_HOST:'localhost',
        DB_NAME:'blog',
        DB_USER:'root',
        DB_PASS:'root',
        DB_PRE:'',
        APP_PORT:'8888'
    };

    函数文件common/functions.js

    /**
    * 公共函数文件
    */
    module.exports={
        /*模拟php的date()函数*/
        phpDate:function(formatStr,time){
            var paramModel='ymdhis';
            if(!formatStr) formatStr="y-m-d h:i:s";
            
            if(time){
                myDateTime=new Date(time*1000);
            }else{
                myDateTime=new Date();
            }
            var strTimeArr=[
                myDateTime.getFullYear().toString(),
                (myDateTime.getMonth()+1).toString(),
                myDateTime.getDate().toString(),
                myDateTime.getHours().toString(),
                myDateTime.getMinutes().toString(),
                myDateTime.getSeconds().toString(),
            ];
            for(var i=0;i<strTimeArr.length; i++){
                formatStr=formatStr.replace(paramModel.charAt(i), strTimeArr[i]);                 
            }
            return formatStr;
        }
    
    };

    载入公共文件,定义资源文件

    /*载入公共文件,定义资源文件*/
    global.C=require("./common/config");
    global.F=require("./common/functions"); 
    application.use(express.static('public'));

    路由级中间件 

    控制器分为两组home和admin

    /*路由级中间件*/
    application.use('/',require('./controller/home/index'));
    application.use('/admin',require('./controller/admin/index'));
  • 相关阅读:
    终端不显示 git branch 名字
    多线程下bufferedwriter若不关闭并不能记下所有log
    anaconda prompt execute jupyter notebook, can't open notebook
    conda 创建新环境下载包失败
    failed to install jupyter_contrib_nbextensions
    failed to install nb_conda
    Windows Server 2012R2 修复CVE-2016-2183(SSL/TLS)漏洞的办法
    SSL/TLS协议信息泄露漏洞(CVE-2016-2183)解决办法
    记录win NFS公网映射开放端口
    出题器
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5248900.html
Copyright © 2011-2022 走看看