javascript
NodeJS+Express+mySQL服务端开发详解
NodeJS+Express+mySQL服務端開發詳解
隨著NodeJS的發展,現在已經被很多人熟知,NodeJS已經成為了前端開發人員必備的技能。本文不會對NodeJS過多介紹 如果你感興趣可以訪問NodeJS?官網,?維基百科
本文是利用NodeJS+Express開發一個服務器程序,Express 是一種保持最低程度規模的靈活 Node.js Web 應用程序框架,為 Web 和移動應用程序提供一組強大的功能。
一 準備工作
首先你需要安裝NodeJS環境 這里不再做介紹,
1.安裝Express
2.初始化項目
cd example //進入項目文件夾 express project //創建express目錄,project是目錄名3.執行如下命令:
1.cd project //進入項目根目錄 2.npm install //安裝依賴最終目錄:
/bin:用來啟動應用(服務器)
/public: 存放靜態資源目錄
/routes:路由用于確定應用程序如何響應對特定端點的客戶機請求,包含一個 URI(或路徑)和一個特定的 HTTP 請求方法(GET、POST 等)。每個路由可以具有一個或多個處理程序函數,這些函數在路由匹配時執行。
/views: 模板文件所在目錄 文件格式為.jade
目錄app.js程序main文件 這個是服務器啟動的入口
二 啟動服務器
npm start //啟動服務器啟動完成后終端將輸出 node ./bin/www
在瀏覽器中訪問?http://localhost:3000/
?
三 基本使用
打開app.js 這里介紹下主要代碼:
var express = require('express');//加載express模塊 var path = require('path');//路徑模塊 var favicon = require('serve-favicon');//請求網頁的logo var logger = require('morgan');//在控制臺中,顯示req請求的信息 var cookieParser = require('cookie-parser');//這就是一個解析Cookie的工具。通過req.cookies可以取到傳過來的cookie,并把它們轉成對象。 var bodyParser = require('body-parser');//node.js 中間件,用于處理 JSON, Raw, Text 和 URL 編碼的數據。// 路由信息(接口地址),存放在routes的根目錄 var index = require('./routes/index'); var users = require('./routes/users'); var add = require('./routes/add'); var edit = require('./routes/edit'); var del = require('./routes/del'); var app = express();// 模板開始 app.set('views', path.join(__dirname, 'views'));//設置視圖根目錄 app.set('view engine', 'jade');//設置視圖格式(本人不太喜歡用jade,接下來會交大家使用html格式的文件)// 載入中間件 app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public')));//配置路由,('自定義路徑',上面設置的接口地址) app.use('/', index); app.use('/search', users);//查 app.use('/add', add);//增 app.use('/edit', edit);//改 app.use('/del', del);//刪// 錯誤處理 app.use(function(req, res, next) {var err = new Error('Not Found');err.status = 404;next(err); });app.use(function(err, req, res, next) {// set locals, only providing error in developmentres.locals.message = err.message;res.locals.error = req.app.get('env') === 'development' ? err : {};// render the error pageres.status(err.status || 500);res.render('error'); });module.exports = app;定義一個路由的基本格式為:
app.METHOD(PATH, HANDLER)其中:
app 是 express 的實例。
METHOD是?HTTP 請求方法。
PATH 是服務器上的路徑。
HANDLER 是在路由匹配時執行的函數。
以上的定義代表
在根路由 (/) 上(應用程序的主頁)對 GET 請求進行響應:
以下是目錄結構圖:
?
這個例子沒用jade,改用html。
先從路由講起:
打開index.js
var express = require('express'); var router = express.Router();//編寫執行函數 router.get('/', function(req, res, next) {//使用絕對定位打開views下面的html文件res.sendFile("/JJ-Note/nodeTest/example/example/views/" + "index.html" )});module.exports = router;再次打開add.js
var express = require('express'); var router = express.Router();var URL = require('url'); //加載mysql模塊 var mysql = require('mysql'); //創建連接 var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', database : 'jj' }); //執行創建連接 connection.connect(); //SQL語句 var sql = 'SELECT * FROM name'; var addSql = 'INSERT INTO name(id,name,sex) VALUES(?,?,?)';router.get('/', function(req, res, next) {//解析請求參數var params = URL.parse(req.url, true).query;var addSqlParams = [params.id, params.name, params.sex];//增connection.query(addSql,addSqlParams,function (err, result) {if(err){console.log('[INSERT ERROR] - ',err.message);return;} });//查connection.query(sql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);return;}console.log(params.id);//把搜索值輸出res.send(result);}); });module.exports = router;mysql這邊我就不做詳細講解了,不懂的可以去看相關教程;
表結構如圖所示:
routes里的其他幾個js文件與add.js類似,分別代表著增、刪、改、查四個接口;
下面我們一起來啟動一下服務器。
首先在控制臺啟動服務,瀏覽器地址欄輸入http://localhost:3000/
可以看到如下界面:
我們查詢一下數據看能不能出來:
我們再增加一條數據:
可以,接口實現的很順利,修改和刪除就不一一展示了,nodejs功能十分強大,有興趣的朋友可以關注我的個人公眾號,大家一起探討技術。
總結
以上是生活随笔為你收集整理的NodeJS+Express+mySQL服务端开发详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新版vue作用域插槽的使用
- 下一篇: react结合redux的开发步骤