node搭建后臺的實(shí)現(xiàn)步驟
1.首先安裝node,express,express-generator (4.x版本把generator分離出來了所以需要單獨(dú)安裝)
npm i express express-generator -g
2.進(jìn)入項(xiàng)目文件輸入命令 express 項(xiàng)目名
, npm i
安裝響應(yīng)的包,那么簡易的后端框架就給你搭好了,默認(rèn)端口是3000 在bin下面的www修改
我一般習(xí)慣于改寫app.js然后把bin文件刪了,因?yàn)樵胶啙嵲胶酶膶慳pp
var http=require('http') var server=http.createServer(app) //省略中間 然后在最后的導(dǎo)出app刪除 直接監(jiān)聽 server.listen('3030',()=>{console.log('服務(wù)器啟動成功');})
最后修改package.json,由于每個(gè)人的習(xí)慣我習(xí)慣啟用用dev 啟動在腳本scripts修改
"scripts": { "dev": "nodemon ./app.js" },
注意這里我安裝了nodemon 使用的是熱模塊替換 也就是實(shí)時(shí)刷新
3.安裝數(shù)據(jù)庫mysql
npm i mysql -D
var mysql = require('mysql') var conPool = mysql.createPool({ host: '127.0.0.1', port: 3306, user: 'root', password: "123456", database: 'yg', connectionLimit: 10, queueLimit: 10, multipleStatements: true }) module.exports = function exec(sql, params, callBack) { console.log(111); conPool.getConnection((err, coon) => { if (err) { console.log('鏈接失敗'); return } else { coon.query(sql, params, callBack) coon.release() } }) }
然后就是在index中測試
詳細(xì)的數(shù)據(jù)庫操作就不說了
4.下面進(jìn)行路由的二次封裝
首先在外面創(chuàng)建一個(gè)路由請求的文件app/index.js
//這是處理執(zhí)行數(shù)據(jù)庫語句的 const exec = require('../unil/db') /* GET home page. */ init=(req,res)=>{ exec('select * from goods_type_info where 1=1', [], (err, result) => { if (err) { console.log('服務(wù)鏈接出錯(cuò)'); } else { res.send({code:200000,data:result}) } }) } module.exports = {init}; //然后在需要的文件中調(diào)用就行 let getDate=require('../app/index') /* GET home page. */ router.get('/',getDate.init);//這是哪個(gè)路由執(zhí)行哪條語句 這是處理路由的 第一個(gè)是路由 第二個(gè)是路由執(zhí)行的方法 如果路由是嵌套的則需要拼接
這里面的分類可以在細(xì)一點(diǎn) 比如哪個(gè)頁面用到的那些路由統(tǒng)統(tǒng)分離然后統(tǒng)一導(dǎo)入另外expres快速創(chuàng)建的模板是不需要導(dǎo)入 body-parser
的第一個(gè)是因?yàn)楸粭売昧?,第二個(gè)是因?yàn)樗昧?app.use(express.json());app.use(express.urlencoded({ extended: false }));
代替了
在這里前端記得發(fā)起的請求頭是這種格式 不然在后端接收的數(shù)據(jù)格式有問題 不同的格式有不同的寫法 ,詳細(xì)的百度 Content-Type
app.all('*', function (req, res, next) { //設(shè)置跨域訪問 //設(shè)置允許跨域的域名,*代表允許任意域名跨域 res.header("Access-Control-Allow-Origin", "http://localhost:8000"); //允許的header類型 // res.header("Content-Type", "application/x-www-form-urlencoded"); // 設(shè)置請求頭中允許攜帶的參數(shù) res.header("Access-Control-Allow-Headers", "Content-Type,request-origin"); // 允許客戶端攜帶證書式訪問。保持跨域請求中的Cookie。注意:此處設(shè)true時(shí),Access-Control-Allow-Origin的值不能為 '*' res.header("Access-Control-Allow-Credentials", "true"); res.header("Access-control-max-age", 3600); //跨域允許的請求方式 res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS"); next(); });
這樣就能快速的搭建好一個(gè)簡單的后臺框架
在這里我補(bǔ)充一點(diǎn)遇到的問題,就是如果你是本地搭建的,前端開啟必須要寫端口號,不然很容易造成假跨域,造成前端請求,后端保存數(shù)據(jù),在第二次請求的時(shí)候拿不到session
到此這篇關(guān)于node搭建后臺的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)node搭建后臺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs中內(nèi)置模塊fs,path常見的用法說明
這篇文章主要介紹了nodejs中內(nèi)置模塊fs,path常見的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Node.js中readline模塊實(shí)現(xiàn)終端輸入
本文主要介紹了Node.js中readline模塊實(shí)現(xiàn)終端輸入,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Node.js全局處理響應(yīng)并進(jìn)行異常管理
這篇文章主要為大家介紹了Node.js全局處理響應(yīng)并進(jìn)行異常管理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Node.js + express實(shí)現(xiàn)上傳大文件的方法分析【圖片、文本文件】
這篇文章主要介紹了Node.js + express實(shí)現(xiàn)上傳大文件的方法,結(jié)合實(shí)例形式分析了Node.js + express針對圖片、文本文件上傳操作實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-03-03node.js項(xiàng)目如何創(chuàng)建websocket模塊
這篇文章主要介紹了node.js項(xiàng)目如何創(chuàng)建websocket模塊問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09