意见审查Demo 总结

技术说明

mongodb

一张用户表user,一张数据表idea(意见)。

//user表数据字段
userName: String,//用户名称
password: String //登入密码
idea表数据字段
productType: String, //产品类型
headLine: String,  //标题
phoneNum: String,  //联系方式
status: String,    //状态 已回复/未回复/已完成
reply: String,      //回复
publishDate: Date,  //发布日期
replyDate: Date,    //回复日期
fileName: Array,    //图片名称
filePath: Array,    //文件路径
user_id: String    //引用用户ID

mongodb 对象的操作用了mongoose模块封装了CURD操作

nodejs

基于node.js中express模块搭建http服务
监听本地localhost:3000端口访问

使用express4.x中的router中间件将请求分离成/user/以及/idea/.
将app.js中的请求转移到了./router/index.js

module.exports=function(app) {
        /**主界面 */
            app.get('/',index);//主页面请求
            app.use('/user',user);//用户模块
            app.use('/idea',idea);//意见模块
        }

在app.js只需要调用./router/index模块,就可以减少主界面请求的代码量
var index = require(./router/index);
index(app);

分别封装user和idea业务逻辑在模块中实例化express.router对象 ./router/idea.js ./router/idea.js

var router=require("express").Router();

在对外开放router对象
module.exports=router;

mongoose封装对于对象的CURD操作
首先我先封装db数据库连接对象的创建

var mongoose=require(‘mongoose’);
var url=’mongodb://localhost:27017/demo’;
mongoose.connect(url);//连接
module.exports=mongoose;

通过mongoose中封装好的scheme对象将我们数据字段封装好,通过model对象实例化,再导出包含一系列查询以及增加删除等等的操作的对象,简直就是开箱即用。

var mongoose=require('./mongoose');
var ideaSchema=new mongoose.Schema({   //Schema对象封装
        /* idea数据字段*/
});

//idea对应的mongodb中的collection,传入Schema对象,将返回model对象对外开放

module.exports=mongoose.model('idea',ideaSchema)

webix

在ejs渲染引擎下使用webix控件

这一部份代码讲道理写得我有点蒙 = =
ejs通过渲染表达式动态传递值或者对html页面进行一些操作
然而webix就是通过封装控件,在js中传递json对象进行构造html中的节点
公司当时说要webix,我又脑子抽到了不愿意舍弃ejs(简直有毒,在这个demo里ejs的唯一作用就是将我conter内容整合到layout里面)。
为了能让ejs稍微有点作用,我在layout界面中写了构建页面中比较不容易改动的top和footer部分。
对你没想错,写在html内置的js中的,然后从不同的界面中传进去各自内置的js(因为webix主要的优势就是让你不用写html代码),所以ejs最后整合到的一起的页面就是两个不同js脚本。感觉ejs在我这里基本没有作用
前端主要就是通过不同的控件构造一个个不同的页面加上一些按钮的触发事件发送webix中封装的ajax提交请求
代码我就不贴了,源码链接我也放出来了,有兴趣就自己去看看吧

坚持原创技术分享,您的支持是我前进的动力!