[nodejs] nodejs开发个人博客(四)数据模型
数据库模型
/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开发个人博客(四)数据模型的更多相关文章
- 初试Nodejs——使用keystonejs创建博客网站2(修改模板)
上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...
- 用flask开发个人博客(4)—— flask中4种全局变量
https://blog.csdn.net/hyman_c/article/details/53512109 一 current_app current_app代表当前的flask程序实例,使用时需 ...
- Django开发个人博客入门学习经验贴
[写在前面] 入门学习搭建个人博客系统首先还是参考大佬们的经验,记得刚入手Django的时候,一篇博客大佬说过一句话,做技术的不要一开始就扎头于细节中,先把握整体框架,了解这个对象之后再去了解细节,进 ...
- nodejs--express开发个人博客(-)
写完了入门笔记,开始进入开发阶段吧.基于上一节的内容,现在着手开发个人博客系统.先划分一下功能吧 /:首页 /login:登陆 /reg:注册 /post:发表文章 /logout:退出 首先规划一下 ...
- iOS开发优秀博客和软件推荐
iOSBlogAndTools iOS开发优秀博客和软件推荐 本博客和工具列表由广大iOS开发者收集和推荐,如果大家有好的博客或者工具想要分享请点击:我要提交. 收到大家的提交后会及时收录与更新.Gi ...
- RSP小组——团队冲刺博客四
RSP小组--团队冲刺博客四 冲刺日期:2018年12月13日 前言 问题已经明确,经过今天的努力,部分已近得到解决,所以,今天是一个值得庆祝的日子. 各成员今日(12.13)完成的任务 李闻洲对音乐 ...
- 基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- [nodejs] nodejs开发个人博客(一)准备工作
前言 nodejs是运行在服务端的js,基于google的v8引擎.个人博客系统包含对数据库的增删查改,功能齐备,并且业务逻辑比较简单,是很多后台程序员为了检测学习成果,最先拿来练手的小网站程序.我也 ...
- [nodejs] nodejs开发个人博客(三)载入页面
模板引擎 使用ejs作为我们博客的前端模板引擎,用来从json数据生成html字符串 安装:npm install ejs -save 使用:入口文件中写入下面代码,定义/view/目录为视图目录 / ...
- 初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)
我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试NodeJs,决定找一款基于NodeJs的CMS来完成这个工作,最后找到了KeyStoneJS. KeyStoneJS是基于Express和Mon ...
随机推荐
- 录音--获取语音流(pyAudio)
这是学习时的笔记,包含相关资料链接,有的当时没有细看,记录下来在需要的时候回顾. 有些较混乱的部分,后续会再更新. 欢迎感兴趣的小伙伴一起讨论,跪求大神指点~ 录音-语音流(pyAudio) tags ...
- 调用接口,发送https请求
调用https接口有两种方式 一:是导入证书; 证书调用https请求本人还不知道,希望看见此博客的大神给我回复. 二:是创建信任管理器. 第一步:实现X509TrustManager接口,里面的方法 ...
- Openvswitch手册(4): Mirror
这一节我们来分析Mirror Mirror就是配置一个bridge,将某些包发给指定的mirrored ports 对于包的选择: select_all,所有的包 select_dst_port se ...
- win10个人助理conrtana软件能否支持用户反馈、后续优化
上网查找了一下,win10的个人助理不支持用户反馈.这些反馈都是用户通过别的途径来发表反馈的信息,这个缺陷让用户不是特别满意,因为反馈信息不再那么简答,变得越来越繁琐.有些人还会担心自己反馈的问题会不 ...
- nohup和&后台运行,进程查看及终止
1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...
- win10 系统下无法正常安装 Anaconda3
最近国庆两天,突然心血来潮重装了一遍系统,重装成了win10系统以后毛病百出哇,昨天和今天一直在解决一个问题,那就是安装Anaconda3的时候出现不了快捷方式,如下图这样只有一个快捷方式(在win7 ...
- Hadoop 电话通信清单
一.实例要求 现有一批电话通信清单,记录了用户A拨打某些特殊号码(如120,10086,13800138000等)的记录.需要做一个统计结果,记录拨打给用户B的所有用户A. 二.测试样例 样例输入: ...
- JSON Web Token(JWT)使用步骤说明
在JSON Web Token(JWT)原理和用法介绍中,我们了解了JSON Web Token的原理和用法的基本介绍.本文我们着重讲一下其使用的步骤: 一.JWT基本使用 Gradle下依赖 : c ...
- HTTP 协议常见的状态码
HTTP状态码负责表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. 状态码的类别: 记录在RFC2616上的HTTP状态码有40种,再加上WebDAV等的扩展,数量 ...
- SpringMVC项目容易出现的BUG
1.400错误:1.语义有误,当前请求无法被服务器理解.除非进行修改,否则客户端不应该重复提交这个请求. 2.请求参数有误. 你发送的请求有误,这个问题去页面提交的地方看. 如:你想删除一条数据,id ...