摘要:嘗試使用調(diào)試程序,實現(xiàn)個人更習(xí)慣使用來調(diào)試客戶端使用調(diào)取接口的時候要區(qū)分的區(qū)別參數(shù)放在不設(shè)置或者參數(shù)放在
使用到的技術(shù)棧有express、mysql.
項目結(jié)構(gòu):
service --node_modules --app.js --query.js
app.js支持調(diào)用服務(wù),使用body-parser對request進(jìn)行處理.
query.js實現(xiàn)鏈接數(shù)據(jù)庫以及查詢數(shù)據(jù)庫的功能.
app.js代碼如下:
var express = require("express"); var query = require("./query") var bodyParser = require("body-parser"); var cookieParser = require("cookie-parser"); var app = express(); app.use(bodyParser.urlencoded({ extended: false }))//返回的對象是一個鍵值對,當(dāng)extended為false的時候,鍵值對中的值就為"String"或"Array"形式,為true的時候,則可為任何數(shù)據(jù)類型。 app.use(bodyParser.json()) //跨域支持 app.all("*", function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Headers", "Content-Type"); next(); }); //登錄 app.post("/login",(req,res)=>{ var opts = req.body; query(" SELECT *FROM `v_users` WHERE userAcount = ?",opts.userName).then((result)=>{ var response = result[0]; if(opts.password !== response.u_password){ return res.send({ errorCode:"404", errorMsg:"登錄密碼錯誤" }) } //模擬生成loginToken var loginToken = response.userAcount + Math.random()*Math.pow(10,16) res.send({ loginToken:loginToken }) }) }) var server = app.listen(3000,()=>{ console.log("success") })
query.js代碼如下:
; (function() { var mysql = require("mysql"); // var session = require("cookie-session"); var query = (sql,key) => { var connection = mysql.createConnection({ host: "localhost", user: "root", password: "root123", database: "m_users" }); connection.connect() var promise = new Promise((resolve,reject)=>{ connection.query(sql,[key], function(error, results, fields) { if(error){ reject(error) }else{ resolve(results); } }); connection.end(); }); return promise; } module.exports = query; })()
實踐總結(jié):
1.express的入門級用法,以及對body-parser和mysql插件的用法。
2.嘗試使用 Inspector調(diào)試node程序,實現(xiàn)debugger,by the way 個人更習(xí)慣使用gulp來調(diào)試.
3.客戶端使用post調(diào)取接口的時候要區(qū)分Content-Type的區(qū)別:
Content-Type:application/json;charset=UTF-8 參數(shù)放在requestPayload
Content-Type:不設(shè)置或者application/x-www-form-urlencoded 參數(shù)放在Form Data
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107336.html
摘要:框架應(yīng)用程序是一個保持最小規(guī)模的靈活的應(yīng)用程序開發(fā)框架,為和移動應(yīng)用程序提供一組強(qiáng)大的功能。路由基本使用下載新建一個文件,然后輸入然后運行打開就出現(xiàn)請求和響應(yīng)應(yīng)用使用回調(diào)函數(shù)的參數(shù)和對象來處理請求和響應(yīng)的數(shù)據(jù)。 Express框架 Web 應(yīng)用程序 Express 是一個保持最小規(guī)模的靈活的 Node.js Web 應(yīng)用程序開發(fā)框架,為 Web 和移動應(yīng)用程序提供一組強(qiáng)大的功能。 AP...
摘要:先建個簡單的服務(wù)器當(dāng)然你先得安裝使用,如果這里的代碼復(fù)制后運行不了請移步我的下載源碼順手給我個小星星鼓勵哈運行后訪問默認(rèn)匹配的路由是,多個要使用方法,但是使用了,或者就不能使用到達(dá)下一個了是添加路由的方法,忽略大小寫,反斜杠,進(jìn)行匹配時不 先建個簡單的服務(wù)器 當(dāng)然你先得安裝express npm install express //使用express,如果這里的代碼復(fù)制后運行不了請移步...
摘要:實踐由于是一種規(guī)范,它不是一種實現(xiàn),如果要自己實現(xiàn)還是比較難的,不用擔(dān)心,強(qiáng)大的開源社區(qū)已經(jīng)幫我們準(zhǔn)備好了,這就是開源項目。然后執(zhí)行這樣項目就啟動了,如下圖注這里存在跨域問題,所以服務(wù)器端需要使用解決跨域問題,具體看代碼。 為什么要用graphql? 讓我們先回顧一下我們現(xiàn)在所使用的API設(shè)計風(fēng)格 純rest:一個endpoint對應(yīng)一個資源 優(yōu)點:靈活、解構(gòu)缺點:由于一個endpoi...
摘要:指定需要處理的路由回調(diào)函數(shù),即請求此路由的處理函數(shù),它可以接收兩個參數(shù)三個參數(shù),四個參數(shù)。如果匹配到自定義的路由,立即執(zhí)行回調(diào)函數(shù),如果處理函數(shù)中沒有則不再往下執(zhí)行,如果執(zhí)行了會繼續(xù)向下匹配。 簡介 Node.js? is a JavaScript runtime built on Chromes V8 JavaScript engine. Node.js uses an event-...
閱讀 3475·2023-04-26 02:31
閱讀 3633·2021-11-23 09:51
閱讀 1298·2021-11-17 09:33
閱讀 2447·2021-11-16 11:45
閱讀 2578·2021-10-11 11:12
閱讀 2420·2021-09-22 15:22
閱讀 2723·2021-09-04 16:40
閱讀 2587·2021-07-30 15:30