基于express + express-myconnection 的请求处理模板
前提:
开发APP时经常会用到后台提供的接口,作为一个一直搞前端的程序员。如何写后台这事不能真的一窍不通把。所以还是多多少少了解一些后台。
以前尝试过用java 的spring + springMVC + MyBitas 搞一个简单的后台玩玩。可是环境的搭建和调试实在是麻烦,而且报错日志看不懂啊。最后决定用基于 Node 的express 框架。
我的需求很简单:
1、后台服务能响应get 请求和post请求
2、最简单的请求只返回json
3、请求的处理过程中需要连接mysql数据库,查表,方便后续扩展开发。
mac serria 环境 node@6.10.1 | express@4.x | express-myconnection@1.0.4 | mysql 5.1.x | IDE:IDEA
开发环境的安装自行百度,环境安装好之后,用数据库管理工具navicat新建一个简单的user 表。输入如下数据。如果要展示中文,新建表时记得配置 varchar的编码方式为utf-8。
一、准备
工程目录 基本结构如下,新建一个nodeSql的文件夹,打开IDEA 建立如下连个文件,其他文件可以可以后续添加。也可以用express-genrator 生成应用。目录更加详细规整。
+router
--index.js
-app.js
新建一个express 工程,可以按照官方给你教程新建一个最简单的工程:
app.js 里的代码
1 var express = require('express');//引入 express 2 var home = require('./router/index');//引入需要的路由 3 var mysql = require('mysql'),//配置mysql数据库 4 myConnection = require('express-myconnection'), 5 dbOptions = { 6 host : 'localhost', 7 user:'root', 8 password:'***', 9 port: 3306, 10 database:'dataBaseName' 11 }; 12 13 var app = express();//创建express应用 14 app.use(myConnection(mysql, dbOptions, 'single'));//这里用简单的单例连接 15 app.use('/', home); 16 //创建服务 17 var server = app.listen(3000, function(){ 18 var host = server.address().address; 19 var port = server.address().port; 20 console.log('Express app listening at: http://%s:%s ' ,host, port); 21 });
routes/index.js 里的代码
1 var express = require('express'); 2 var router = express.Router();//引用express的路由 3 router.get('/', function(req, res, next){//首页路由 4 res.send('欢迎来到首页'); 5 next(); 6 }); 7 router.get('/about', function(req, res){//关于界面 8 res.send('关于界面'); 9 }); 10 router.get('/test', function(req, res, next){//测试数据库能否查询成功 11 req.getConnection(function (err, conn) { 12 if(err){ 13 return next(err); 14 }else { 15 conn.query('select * from user',[], function (err, result) { 16 if(err){ 17 return next(err); 18 }else{ 19 console.log(result); 20 res.json(result); 21 } 22 }) 23 } 24 }) 25 }); 26 27 router.get('/login', function(req, res){//处理一个简单的带参数的get请求 28 console.log("json" + JSON.stringify(req.query)); 29 var params = req.query; 30 if(params.userName == 'wjw' && params.password == 'wjw'){ 31 // res.json({"userName":userName,"password":password}); 32 res.send("login success!"); 33 }else { 34 res.send("userID or password was wrong!"); 35 } 36 }); 37 module.exports = router;//模块导出
在nodeSql文件夹的位置打开终端。输入 node app.js 启动服务
在浏览其中 输入 localhost:3000/test 回车
在浏览器中 输入 localhost:3000/login?userName=wjw&password=wjw
观察结果 能够正常连接数据库并读出数据了。能够响应带参数的get请求。
转载于:https://www.cnblogs.com/wjw-blog/p/6906669.html
基于express + express-myconnection 的请求处理模板相关推荐
- 基于Vue+Express+Mysql开发的手机端电影购票系统(附源码)
基于Vue+Express+Mysql开发的手机端电影购票系统 基于手机的电影购票系统-Vue+Node 一个Vue+Express+Mysql的电影售票项目 项目完整源码下载 https://dow ...
- express应用中ajax结合模板引擎ejs.js渲染页面
一.express应用中ajax结合模板引擎ejs.js渲染页面 在views新建一个渲染模板命名 Template.ejs Template.ejs 示例: <% if(coursesList ...
- [PCIE733]基于PCI Express总线架构的2路160MSPS AD采集、12路LVDS图像数据采集卡
板卡概述 PCIE733是一款基于PCI Express总线架构的,实现2路16-bit.160MSPS ADC采集功能.12路LVDS数据采集板卡.该板卡遵循PCI Express ...
- 基于c#winform的可视化打印标签模板设计器及Labview与C#调用模板Demo
基于c#winform的可视化打印标签模板设计器及Labview与C#调用模板Demo 在工作中经常需要通过程序自动打印标签功能,对于打印机用串口和Tcp传输打印内容过于繁琐,且中文字体不好处理,故参 ...
- html5快速开发模板生成器,推荐一个基于Vue 的 H5 快速开发模板
本项目以基于 vue-cli4 和 Vant-ui 搭建的,进行移动端开发中的一些最佳实践方案 模板地址 动动你的小手点颗star 样式适配 在移动端网页开发时,样式适配始终是一个绕不开的问题.对此目 ...
- 【Straw-Uniapp-uView】基于 Uniapp + uView 搭建项目基础模板
文章目录 一.项目简介 1.项目概述 2.相关链接 3.基础功能 4.后端搭建 二.开发手册 全局约束 全局样式约束 全局that约束 代码模板 表单 消息提示 确定取消 http请求 请求拦截器 文 ...
- 基于uniapp+express+mysql购物商城模板设计
渲染轮播数据 使用swiper组件进行渲染 这里关于图片的宽度,采用rpx设置,如果要占满整屏就是750rpx rpx(responsive pixel): 可以根据屏幕宽度进行自适应.规定屏幕宽为7 ...
- [Node.js] 基于NodeJS+Express+mongoDB+Bootstrap的博客系统实战
MyBlog实战 项目要求 a. 前台和后台的页面布局 前台要求有首页.列表页.详情页面.登录.注册 后台要求有登录页面.列表.添加修改页面 页面要求简洁.美观.大方 b. 后台功能要求 前台注册用户 ...
- 在express路由中使用ejs模板引擎
首先创建文件夹, example –views –about.ejs –index.ejs app.js app.js 代码 var express = require('express'); var ...
最新文章
- 2021新款 iPad,包邮送一个!10月25日截止
- win7装64位oracle和PLSQL
- 智能硬件的时代,嵌入式是否已经日薄西山
- TCP如何利用不可靠的IP协议实现可靠传输
- wpf(第一个应用实例)
- ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
- 使用Hystrix实现自动降级与依赖隔离-微服务
- C++之includeiostream与includeiostream.h
- vue和哪个php框架搭配,vue配什么ui框架比较好
- java linux ifstat,ifstat命令
- 科学研究:统计来看,是不是新(接触的)人运气明显好?
- 经济学人精读笔记10:员工休假居然对企业有好处?
- android 解析rss,在Android中解析RSS源
- bittorrent下载_面向初学者的BitTorrent:如何开始下载Torrent
- python 绘制箱型图_Python数据可视化:Seaborn 绘制箱形图
- 教你如何在闲鱼买二手iPhone
- 如何在Ubuntu 16.04上使用ProxySQL缓存优化MySQL查询
- Redis Expire 设置key过期时间
- ifft java_在Matlab中的fft / ifft反卷积
- JetPack之Room,Room基本使用
热门文章
- TensorFlow Input
- C++ string容器
- hadoop Idea Win本地运行
- 1.10 梯度消失与梯度爆炸
- 3.11 随机初始化
- python解析html的库_python解析html开发库pyquery使用方法
- 协程asyncio_初识asyncio协程
- echarts legend位置_一起读 ECharts 配置项手册之 series[i]-line(上)
- 5375亿元的x86市场:戴尔946亿、HPE 682亿、浪潮517亿、联想345亿、华为256亿、思科218亿、新华三204亿
- 使用gp部署bginfo在客户端显示信息