javascript
NodeJS+Express+mySQL服务端开发详解
NodeJS+Express+mySQL服務(wù)端開發(fā)詳解
隨著NodeJS的發(fā)展,現(xiàn)在已經(jīng)被很多人熟知,NodeJS已經(jīng)成為了前端開發(fā)人員必備的技能。本文不會(huì)對(duì)NodeJS過多介紹 如果你感興趣可以訪問NodeJS?官網(wǎng),?維基百科
本文是利用NodeJS+Express開發(fā)一個(gè)服務(wù)器程序,Express 是一種保持最低程度規(guī)模的靈活 Node.js Web 應(yīng)用程序框架,為 Web 和移動(dòng)應(yīng)用程序提供一組強(qiáng)大的功能。
一 準(zhǔn)備工作
首先你需要安裝NodeJS環(huán)境 這里不再做介紹,
1.安裝Express
2.初始化項(xiàng)目
cd example //進(jìn)入項(xiàng)目文件夾 express project //創(chuàng)建express目錄,project是目錄名3.執(zhí)行如下命令:
1.cd project //進(jìn)入項(xiàng)目根目錄 2.npm install //安裝依賴最終目錄:
/bin:用來啟動(dòng)應(yīng)用(服務(wù)器)
/public: 存放靜態(tài)資源目錄
/routes:路由用于確定應(yīng)用程序如何響應(yīng)對(duì)特定端點(diǎn)的客戶機(jī)請(qǐng)求,包含一個(gè) URI(或路徑)和一個(gè)特定的 HTTP 請(qǐng)求方法(GET、POST 等)。每個(gè)路由可以具有一個(gè)或多個(gè)處理程序函數(shù),這些函數(shù)在路由匹配時(shí)執(zhí)行。
/views: 模板文件所在目錄 文件格式為.jade
目錄app.js程序main文件 這個(gè)是服務(wù)器啟動(dòng)的入口
二 啟動(dòng)服務(wù)器
npm start //啟動(dòng)服務(wù)器啟動(dòng)完成后終端將輸出 node ./bin/www
在瀏覽器中訪問?http://localhost:3000/
?
三 基本使用
打開app.js 這里介紹下主要代碼:
var express = require('express');//加載express模塊 var path = require('path');//路徑模塊 var favicon = require('serve-favicon');//請(qǐng)求網(wǎng)頁的logo var logger = require('morgan');//在控制臺(tái)中,顯示req請(qǐng)求的信息 var cookieParser = require('cookie-parser');//這就是一個(gè)解析Cookie的工具。通過req.cookies可以取到傳過來的cookie,并把它們轉(zhuǎn)成對(duì)象。 var bodyParser = require('body-parser');//node.js 中間件,用于處理 JSON, Raw, Text 和 URL 編碼的數(shù)據(jù)。// 路由信息(接口地址),存放在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'));//設(shè)置視圖根目錄 app.set('view engine', 'jade');//設(shè)置視圖格式(本人不太喜歡用jade,接下來會(huì)交大家使用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')));//配置路由,('自定義路徑',上面設(shè)置的接口地址) app.use('/', index); app.use('/search', users);//查 app.use('/add', add);//增 app.use('/edit', edit);//改 app.use('/del', del);//刪// 錯(cuò)誤處理 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;定義一個(gè)路由的基本格式為:
app.METHOD(PATH, HANDLER)其中:
app 是 express 的實(shí)例。
METHOD是?HTTP 請(qǐng)求方法。
PATH 是服務(wù)器上的路徑。
HANDLER 是在路由匹配時(shí)執(zhí)行的函數(shù)。
以上的定義代表
在根路由 (/) 上(應(yīng)用程序的主頁)對(duì) GET 請(qǐng)求進(jìn)行響應(yīng):
以下是目錄結(jié)構(gòu)圖:
?
這個(gè)例子沒用jade,改用html。
先從路由講起:
打開index.js
var express = require('express'); var router = express.Router();//編寫執(zhí)行函數(shù) router.get('/', function(req, res, next) {//使用絕對(duì)定位打開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'); //創(chuàng)建連接 var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', database : 'jj' }); //執(zhí)行創(chuàng)建連接 connection.connect(); //SQL語句 var sql = 'SELECT * FROM name'; var addSql = 'INSERT INTO name(id,name,sex) VALUES(?,?,?)';router.get('/', function(req, res, next) {//解析請(qǐng)求參數(shù)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這邊我就不做詳細(xì)講解了,不懂的可以去看相關(guān)教程;
表結(jié)構(gòu)如圖所示:
routes里的其他幾個(gè)js文件與add.js類似,分別代表著增、刪、改、查四個(gè)接口;
下面我們一起來啟動(dòng)一下服務(wù)器。
首先在控制臺(tái)啟動(dòng)服務(wù),瀏覽器地址欄輸入http://localhost:3000/
可以看到如下界面:
我們查詢一下數(shù)據(jù)看能不能出來:
我們?cè)僭黾右粭l數(shù)據(jù):
可以,接口實(shí)現(xiàn)的很順利,修改和刪除就不一一展示了,nodejs功能十分強(qiáng)大,有興趣的朋友可以關(guān)注我的個(gè)人公眾號(hào),大家一起探討技術(shù)。
總結(jié)
以上是生活随笔為你收集整理的NodeJS+Express+mySQL服务端开发详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新版vue作用域插槽的使用
- 下一篇: gradle idea java ssm