現在作為一個前端開發人員,越來越多的技術需要學習,近幾天學習了下node.js,在很多前端以及后端應用了該技術,現在記錄下自己摸索的一些簡單的知識記錄下來。
我的博客都是直接分享應用方法,沒有說明一些底層原理和具體的細節,畢竟低端程序員,相信很多剛入行的小伙伴,也是急於完成任務,學會他的使用方法即可。在這里我就不敘述node的基本的下包登方法了,這里就當你們都已經下載node.js(新版的node包含了npm),安裝了淘寶鏡像。
- 下載express,這里我們使用express來搭建服務,結合數據庫來完成完整的前后端業務,如果你喜歡原生的方法,可以自行百度或者看官方文檔
-
cnpm i express -g
cnpm i mysql --save -dev
cnpm i body-parser --save -dev - 為了方便大家進行理解,在這里我就不把文件進行分開,采用中間件的形式來編寫了,新建一個文件作為啟動的入口文件,這里我設置為app.js
-
var express = require('express'); //引入express var app = express(); //注冊成app(這里我們也可以應用路由中間件 var router = express.Router(),接着在寫接口時,將app替換為router) var bodyParser = require('body-parser'); //引入插件包,解決post請求參數問題 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); var mysql = require('mysql'); //引入數據庫插件包 var connection = mysql.createConnection({ //填寫數據庫的信息 host: 'localhost', //域名 user: 'root', //用戶 password: '', //密碼 database: 'node_test', //數據庫的名稱 }); connection.connect(); //連接數據庫(在這里的操作和php類似,學過php的朋友應該很簡單) //設置跨域訪問 app.all('*', function (req, res, next) { //設置全局的全域問題,我這里是把所有的全部允許了,如果不怕麻煩或者業務需求,你也可以在請求里面寫對應的跨域問題 res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By", ' 3.2.1'); res.header("Content-Type", "application/json;charset=utf-8"); next(); }); //查詢接口 app.get('/weblist', function (req, res) { var sql = "select * from webList" //寫對應的你需要操作的sql語句,無外乎就是增刪查改這些,當然復雜點的可能還有多表聯查登,可以查看mysql數據庫的知識學習 connection.query(sql, function (error, result, fields) { //執行mysql語句,訪問數據庫 res.send(result)//將結果返回(這里的數據我們可以進行響應的判斷和包裝返回給前端,以便於前端業務的進行,當然req,res對應着許多的方法,也不一一敘述了) }) }); //新增接口 app.post('/addWeblist', function (req, res) { var addSql = 'insert into webList(id,name,url,del) VALUES(0,?,?,?)'; //這里是一個新增的sql語句,應用一定的參數用法,具體看文檔解決 var addSqlParams = [`${req.body.name}`, `${req.body.url}`, 1]; //post的請求,我們通過req.body來獲取到他的具體傳遞的參數 connection.query(addSql, addSqlParams, function (error, result, fields) { res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' //可以設置響應的狀態,格式等,根據需求來設置 }); res.send(result) }) }); //配置服務端口 app.listen(3000) //監聽服務端口
- 接下來我們可以在前端訪問我們的接口,需要填寫完整的域名和端口,並啟動我們的弄得后台服務
-
node app.js //啟動后台node
- 這里以jq的ajax請求為例子
-
$('#btn').click(function () { var name = $('#name').val(); var url = $('#url').val(); $.ajax({ type: 'post', url:'http://localhost:3000/addWeblist', data:{ name,url }, success:function(data){ }, error:function(){ console.log('error') } }) });
- 這里僅供大家學習最基本的服務怎么寫,存在着非常多的問題!在之后的博客中,在給大家敘述具體的業務中怎么來模塊化的進行,以及應用腳手架來搭建一個簡單的后台應用