仿安居客服务端框架搭建

一,安装各种需要的依赖包
1、const express=require('express');
使用express 创建服务器
2、 const bodyParser=require('body-parser');
'body-parser解析post数据
3、const cookieParser=require('cookie-parser');
const cookieSess=require('cookie-session');
cookie-parser ,cookie-session验证身份证
4、const consolidate=require('consolidate');
模板引擎适配
5、const ejs=require('ejs');
模板引擎
6、const mysql=require('mysql');
数据库
7、 const multer=require('multer');
post文件上传

二、编写server.js也就是index.js(main.js)

 //创建服务器
 let server=express();
 server.listen(config.port);

 //连接数据库
  let db=mysql.createPool({host:config.mysql_host,user:config.mysql_user,password:config.mysql_password,port:config.mysql_port,database:config.mysql_dbname})

 server.use((req,res,next)=>{
    req.db=db;
    next();
 });
 //中间件
 //普通post数据
 server.use(bodyParser.urlencoded({extended:false}));

  //文件post
  let multerObj=multer({dest:'./upload'});
  server.use(multerObj.any());

 //cookie
server.use(cookieParser(require('./secret/cookie_key')));

 //session
server.use(cookieSess({
    keys:require('./secret/session_key')
})) ;

 //模板
 //1.选择一种模板引擎
 server.engine('html', consolidate.ejs);
 //2.指定模板文件的扩展名
 server.set('view engine', 'ejs');
 //3.指定模板文件的路径
 server.set('views', './template');

 //处理请求

 server.use('/admin/',require('./routers/admin'));
 server.use('/',require('./routers/www'));

 //静态文件
 server.use(express.static('./www/'));

三、配置公共设置
安全cookie_key和session_key

module.exports=[
    'dfawetsertsdgfgffgdfg',
    'vbdtyt867',
    'gncgutyi9y78i978',
    '565rthcfgncfgb',
    'y75rt6utfyhft',
    '5e67ytdyhcfgnghc',
    'gfhdtyru67ur7',
    'tgdrfhfhdfut76y66',
]

1.config.js

module.exports={
    //端口
    port:8080,
    //数据库
    mysql_host:'localhost',
    mysql_port:3306,
    mysql_user:'root',
    mysql_password:'',
    mysql_dbname:'anjuke',

    //超级管理员配置

    root_username:'lll',
    root_password:'e10adc3949ba59abbe56e057f20f883e',
}

2.生成uuid和md5加密
common.js

const crypto=require('crypto');
const uuid=require('uuid/v4');

module.exports={
    md5(str){
        //定义加密方式:md5不可逆,此处的md5可以换成任意hash加密的方法名称;
      let md5=crypto.createHash('md5');
      md5.update(str);
      return md5.digest('hex');
    },
    uuid(){
       return uuid().replace(/\-/g,'');
    }
};

···

四、分好文件夹
1.template
存放所有的模板文件

2.www

存放所有的静态资源

3。upload
存放上传的文件或者图片

4.routers
存放路由文件
开发的时候主要是写这块


架子就这样搭好 了

推荐阅读更多精彩内容