数据库模型

/model/db.js 数据库操作类,完成链接数据库和数据库的增删查改

查询表

    /*查询*/
select:function(tableName,callback,where,field){
field=field ? field : '*';
var sql="select "+field+" from "+this.C.DB_PRE+tableName;
if(where){
sql+=" where "+where;
}
this.db.query(sql,callback);
}

添加记录

    /*添加*/
add:function(tableName,tableData,callback){
var sql="insert into "+this.C.DB_PRE+tableName;
var clumn='';
var value='';
for(var key in tableData){
clumn+=","+key;
value+=",'"+tableData[key]+"'";
}
clumns="("+clumn.substr(1)+")";
values="("+value.substr(1)+")";
sql=sql+clumns+"values"+values;
console.log(sql);
this.db.query(sql,callback);
}

修改记录

    /*修改*/
update:function(tableName,tableData,where,callback){
var sql="update "+this.C.DB_PRE+tableName+" set ";
var clumns="";
for(var key in tableData){
clumns+=","+key+"='"+tableData[key]+"'";
}
clumns=clumns.substr(1); sql+=clumns+" where "+where;
console.log(sql);
this.db.query(sql,callback);
}

删除记录

    /*删除*/
delete:function(tableName,where,callback){
var sql="delete from "+this.C.DB_PRE+tableName+" where "+where;
console.log(sql);
this.db.query(sql,callback);
}

业务模型

例如分类模型,/model/category.js

/**
*分类模型
*
*/
module.exports={
getAllList:function(){
db.select("category",function(err,list){
console.log(list);
});
},
/*添加*/
addCate:function(data){
db.add("category",data,function(err,list){
console.log(err);
});
},
/*修改*/
saveCate:function(data,where){
db.update("category",data,where,function(err,list){
console.log(err);
});
},
/*删除*/
delCate:function(where){
db.delete("category",where,function(err,list){
//console.log(err);
});
}
};

控制器

先在公共函数文件增加一个调用模型的方法

    /*实例化模型*/
model:function(name){
return require("../model/"+name);
}

控制器调用业务模型

/**
* 首页控制器
*/
var router=express.Router();
router.get('/',function(req,res,next){
F.model("category").getAllList();
//F.model("category").addCate({"name":"测试"});
//F.model("category").saveCate({"name":"测试1"},"id=4");
//F.model("category").delCate("id=4");
/*渲染模板*/
res.render("home/index");
});
module.exports=router;

[nodejs] nodejs开发个人博客(四)数据模型的更多相关文章

  1. 初试Nodejs——使用keystonejs创建博客网站2(修改模板)

    上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...

  2. 用flask开发个人博客(4)—— flask中4种全局变量

    https://blog.csdn.net/hyman_c/article/details/53512109 一  current_app current_app代表当前的flask程序实例,使用时需 ...

  3. Django开发个人博客入门学习经验贴

    [写在前面] 入门学习搭建个人博客系统首先还是参考大佬们的经验,记得刚入手Django的时候,一篇博客大佬说过一句话,做技术的不要一开始就扎头于细节中,先把握整体框架,了解这个对象之后再去了解细节,进 ...

  4. nodejs--express开发个人博客(-)

    写完了入门笔记,开始进入开发阶段吧.基于上一节的内容,现在着手开发个人博客系统.先划分一下功能吧 /:首页 /login:登陆 /reg:注册 /post:发表文章 /logout:退出 首先规划一下 ...

  5. iOS开发优秀博客和软件推荐

    iOSBlogAndTools iOS开发优秀博客和软件推荐 本博客和工具列表由广大iOS开发者收集和推荐,如果大家有好的博客或者工具想要分享请点击:我要提交. 收到大家的提交后会及时收录与更新.Gi ...

  6. RSP小组——团队冲刺博客四

    RSP小组--团队冲刺博客四 冲刺日期:2018年12月13日 前言 问题已经明确,经过今天的努力,部分已近得到解决,所以,今天是一个值得庆祝的日子. 各成员今日(12.13)完成的任务 李闻洲对音乐 ...

  7. 基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  8. [nodejs] nodejs开发个人博客(一)准备工作

    前言 nodejs是运行在服务端的js,基于google的v8引擎.个人博客系统包含对数据库的增删查改,功能齐备,并且业务逻辑比较简单,是很多后台程序员为了检测学习成果,最先拿来练手的小网站程序.我也 ...

  9. [nodejs] nodejs开发个人博客(三)载入页面

    模板引擎 使用ejs作为我们博客的前端模板引擎,用来从json数据生成html字符串 安装:npm install ejs -save 使用:入口文件中写入下面代码,定义/view/目录为视图目录 / ...

  10. 初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)

    我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试NodeJs,决定找一款基于NodeJs的CMS来完成这个工作,最后找到了KeyStoneJS. KeyStoneJS是基于Express和Mon ...

随机推荐

  1. jQuery-实现图片轮播

    html部分: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <ti ...

  2. spring 排除指定的类或者包扫描

    <!-- 排除Controller注解的扫描 --> <context:component-scan base-package="exampleBean"> ...

  3. C#分部类型解析

    等待着元宵节的到来,过完元宵,这个年也算是过完了,也得开始出去挣钱了,过年回家感觉每个人都觉得很牛,只有自己太渣,为了避免年底再出现这样尴尬的局面,还是需要努力干活.争取当上CEO,赢取白富美,走上人 ...

  4. Android 视频播放器 (一):使用VideoView播放视频

    一.简介 作为Android开发,我们不可避免的会接触到视频播放,VideoView做为最简单的播放器,我们是不应该不会的. 下面简单介绍一下VideoView: VideoView是使用MediaP ...

  5. Conflict with dependency 'com.android.support:support-annotations' in project ':xxx'. Resolved versions for app (25.4.0) and test app (27.1.1) differ 问题解决

    Conflict with dependency 'com.android.support:support-annotations' in project ':xxx'. Resolved versi ...

  6. Git使用详细教程(1):工作区、暂存区、本地仓库、远程仓库

    之前的写过一篇如何在服务器上搭建Git服务Git服务器搭建,接下来的一段时间,我将详细的讲解Git的使用.看如下一张图片,本篇主要理解一些基本概念. 图中几个名词的意思如下: workspace: 工 ...

  7. IntelliJ IDEA 常用快捷键使用说明

    Ctrl + / 可以实现单行注释的快速添加和取消.xml和html注释也能操作. Ctrl + Y 删除选中的代码,或者光标所在行,同时删除代码所占的空间. Ctrl + Alt + V 快速抽取变 ...

  8. Day7:html和css

    Day7:html和css 如果有浮动,会导致脱标,定位也能脱标,我们没有清除浮动,因为里面有子绝父相. 清除浮动的方法 额外标签法,在最后一个浮动元素后面添加一个空的标签代码: <div st ...

  9. Day2:html和css

    Day2:html和css 表格是一种常用的标签,表格结构,做到能够合并单元格. 表格的属性: 属性名 说明 border 设置表格的边框 cellspacing 设置单元格与单元格边框之间的空白间距 ...

  10. Kali学习笔记33:Linux系统缓冲区溢出实验

    之前做过一个Windows应用SLmail的缓冲区溢出的实验 这次来做一个Linux平台的缓冲区溢出实验: 缓冲区溢出是什么? 学过汇编的应该知道,当缓冲区边界限制不严格时,由于变量传入畸形数据或程序 ...