前提:前端
開發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請求。