基於express + express-myconnection 的請求處理模板

前提:前端

開發APP時常常會用到後臺提供的接口,做爲一個一直搞前端的程序員。如何寫後臺這事不能真的一竅不通把。因此仍是多多少少了解一些後臺。java

之前嘗試過用java 的spring + springMVC + MyBitas 搞一個簡單的後臺玩玩。但是環境的搭建和調試實在是麻煩,並且報錯日誌看不懂啊。最後決定用基於 Node 的express 框架。node

個人需求很簡單:mysql

一、後臺服務能響應get 請求和post請求程序員

二、最簡單的請求只返回jsonspring

三、請求的處理過程當中須要鏈接mysql數據庫,查表,方便後續擴展開發。sql

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。express

 

1、準備json

工程目錄 基本結構以下,新建一個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請求。

相關文章
相關標籤/搜索