初识NodeJS服务端开发(Express+MySQL)
来源:互联网 发布:生活垃圾的数据 编辑:程序博客网 时间:2024/06/05 20:16
原文地址:http://www.alloyteam.com/2015/03/sexpressmysql/
NodeJS对前端来说无疑具有里程碑意义,在其越来越流行的今天,掌握NodeJS已经不再是加分项,而是前端攻城师们必须要掌握的技能。本文将与同志们一起完成一个基于Express+MySQL的入门级服务端应用,即可以对数据库中的一张表进行简单的CRUD操作。但本人还是斗胆认为,通过这个应用,可以让没怎么接触后端开发的同志对使用Node进行后端开发有一个大致了解。
Express工程环境准备
1. 安装express,和express项目种子生成器(什么?你问第1步为什么不是安装NodeJS,我也只能呵呵..)
安装express
安装express
2. 创建工程。进入工程目录,运行命令
expresst项目种子生成器会帮我们生成express相应的工程结构,如下
/bin: 用于应用启动
/public: 静态资源目录
/routes:可以认为是controller(控制器)目录
/views: jade模板目录,可以认为是view(视图)目录
app.js 程序main文件
3. 进入工程,安装依赖,然后启动应用
在工程根目录,使用npm install安装依赖,使用npm start启动应用。完成后,你在命令行工具里会看出如下界面,在浏览器中访问会得到我们应用的默认页面
MySQL环境准备
1. 当然,首先你要准备好MySQL环境。可以参看http://supportopensource.iteye.com/blog/1415527进行安装,同时也建议安装一个数据库管理工具,如navicat for mysql,方便操作
2. 创建表
MySQL安装好了后,进入到数据库,创建要用到的表(如user), 结构如下
3. 安装Node的MySQL驱动(请允许装X一下…)
在package.json的dependencies中新增, “mysql” : “latest”, 并执行npm install安装依赖
编写相关代码,整合Express+MySQL
1. 首先,我们先建几个目录,简单分下层(看出我还是很用心木有?)
在工程根目录新增三个目录:
util – 工具方法
conf – 配置
dao – 与数据库交互
完成后的工程结构
2.在conf目录中,编写mySQL数据库连接配置
2. 编写CRUD SQL语句
3. 增加路由及实现数据库的CRUD
以C(新增)的具体实现举例,在/routes/users.js 中增加一个路由
在util/util.js中
//util/util.jsmodule.exports = { extend: function(target, source, flag) { for(var key in source) { if(source.hasOwnProperty(key)) flag ? (target[key] = source[key]) : (target[key] === void 0 && (target[key] = source[key])); } return target; }}
在userDao中实现add方法
4. 测试整合是否成功
因为前面实现的是一个get请求的add方法, 所以可以在浏览器中直接使用地址访问,进入路由, http://localhost:3000/users/addUser?name=xyz&age=18.如果你得到如下JSON返回或看到数据表中有上面的数据插入,表示整合成功了
5. 同理,实现CRUD其它的方法,最终完整的的routes/user.js为:
完整的userDao.js为
除了update测试外,其它get请求都可以直接在浏览器中使用地址+参数完成测试。为了模拟post请求,同时简单使用下jade模板(Express支持的一种模板引擎),
我们在/views目录新建三个jade文件
updateUser.jade
suc.jade
fail.jade
以下是更新测试结果
最后,如果你使用的是idea或webStrom这样的IDE,你就不需要安装express和express项目种子生成器了。这两个IDE是可以直接创建NodeJS项目
小结:
一个Express的helloWorld就差不多完成了, 可以通过这个链接下载此例子源代码http://pan.baidu.com/s/1jGvd4Bc。更多Express的功能(如日志,自动化测试等),等待大家去解锁,愿玩得愉快!
- 初识NodeJS服务端开发(Express+MySQL)
- 初识NodeJS服务端开发(Express+MySQL)
- (NodeJS学习文章收集二) 初识NodeJS服务端开发(Express+MySQL)
- NodeJS服务端开发(Express+MySQL)
- 使用 NodeJS+Express 开发服务端
- nodejs express实现 客户端+服务端
- nodeJS链接mysql数据库(express框架)
- nodejs--express开发个人博客(-)
- nodejs--express开发个人博客(2)
- 使用nodejs+express开发
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(一)项目搭建
- Nodejs Express 开发必备知识点
- nodejs(express+mysql+jade)的增、删、改、查
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(二)主页和注册页面的实现
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(三)Bootstrap-table实现Ajax删除数据
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(四)Bootstrap-table实现Ajax新增修改数据
- 实战开发:nodejs(express)+mongodb+........简单博客系统代码
- mean(mongodb+express+angularjs+nodejs) web开发在线参考资料
- JavaScript实现继承的方式优化
- 基本图像操作
- Android面试必会
- JVM垃圾回收根搜索的三种算法
- 1.注解@pathvariable的用法
- 初识NodeJS服务端开发(Express+MySQL)
- Android中将图片保存到数据库中
- 2 SOLR2:SOLR整合TOMCAT+导入数据并创建索引+solrj操作
- 库存分析与控制课后习题
- 递归算法的一种理解
- 39 Anaconda
- 约瑟夫问题的四种解法
- 特征值分解
- 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。