亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器

Vixb / 2500人閱讀

摘要:嘗試使用調(diào)試程序,實(shí)現(xiàn)個(gè)人更習(xí)慣使用來調(diào)試客戶端使用調(diào)取接口的時(shí)候要區(qū)分的區(qū)別參數(shù)放在不設(shè)置或者參數(shù)放在

使用到的技術(shù)棧有express、mysql.
項(xiàng)目結(jié)構(gòu):

service
--node_modules
--app.js
--query.js

app.js支持調(diào)用服務(wù),使用body-parser對(duì)request進(jìn)行處理.
query.js實(shí)現(xiàn)鏈接數(shù)據(jù)庫(kù)以及查詢數(shù)據(jù)庫(kù)的功能.
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 }))//返回的對(duì)象是一個(gè)鍵值對(duì),當(dāng)extended為false的時(shí)候,鍵值對(duì)中的值就為"String"或"Array"形式,為true的時(shí)候,則可為任何數(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:"登錄密碼錯(cuò)誤"
            })
        }
        //模擬生成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;
})()

實(shí)踐總結(jié):
1.express的入門級(jí)用法,以及對(duì)body-parser和mysql插件的用法。
2.嘗試使用 Inspector調(diào)試node程序,實(shí)現(xiàn)debugger,by the way 個(gè)人更習(xí)慣使用gulp來調(diào)試.
3.客戶端使用post調(diào)取接口的時(shí)候要區(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/107336.html

相關(guān)文章

  • 使用Express搭建一個(gè)簡(jiǎn)單務(wù)器

    摘要:框架應(yīng)用程序是一個(gè)保持最小規(guī)模的靈活的應(yīng)用程序開發(fā)框架,為和移動(dòng)應(yīng)用程序提供一組強(qiáng)大的功能。路由基本使用下載新建一個(gè)文件,然后輸入然后運(yùn)行打開就出現(xiàn)請(qǐng)求和響應(yīng)應(yīng)用使用回調(diào)函數(shù)的參數(shù)和對(duì)象來處理請(qǐng)求和響應(yīng)的數(shù)據(jù)。 Express框架 Web 應(yīng)用程序 Express 是一個(gè)保持最小規(guī)模的靈活的 Node.js Web 應(yīng)用程序開發(fā)框架,為 Web 和移動(dòng)應(yīng)用程序提供一組強(qiáng)大的功能。 AP...

    gghyoo 評(píng)論0 收藏0
  • express搭建網(wǎng)站

    摘要:先建個(gè)簡(jiǎn)單的服務(wù)器當(dāng)然你先得安裝使用,如果這里的代碼復(fù)制后運(yùn)行不了請(qǐng)移步我的下載源碼順手給我個(gè)小星星鼓勵(lì)哈運(yùn)行后訪問默認(rèn)匹配的路由是,多個(gè)要使用方法,但是使用了,或者就不能使用到達(dá)下一個(gè)了是添加路由的方法,忽略大小寫,反斜杠,進(jìn)行匹配時(shí)不 先建個(gè)簡(jiǎn)單的服務(wù)器 當(dāng)然你先得安裝express npm install express //使用express,如果這里的代碼復(fù)制后運(yùn)行不了請(qǐng)移步...

    Kosmos 評(píng)論0 收藏0
  • 開始使用GraphQL

    摘要:實(shí)踐由于是一種規(guī)范,它不是一種實(shí)現(xiàn),如果要自己實(shí)現(xiàn)還是比較難的,不用擔(dān)心,強(qiáng)大的開源社區(qū)已經(jīng)幫我們準(zhǔn)備好了,這就是開源項(xiàng)目。然后執(zhí)行這樣項(xiàng)目就啟動(dòng)了,如下圖注這里存在跨域問題,所以服務(wù)器端需要使用解決跨域問題,具體看代碼。 為什么要用graphql? 讓我們先回顧一下我們現(xiàn)在所使用的API設(shè)計(jì)風(fēng)格 純r(jià)est:一個(gè)endpoint對(duì)應(yīng)一個(gè)資源 優(yōu)點(diǎn):靈活、解構(gòu)缺點(diǎn):由于一個(gè)endpoi...

    UsherChen 評(píng)論0 收藏0
  • Express 搭建務(wù)器

    摘要:指定需要處理的路由回調(diào)函數(shù),即請(qǐng)求此路由的處理函數(shù),它可以接收兩個(gè)參數(shù)三個(gè)參數(shù),四個(gè)參數(shù)。如果匹配到自定義的路由,立即執(zhí)行回調(diào)函數(shù),如果處理函數(shù)中沒有則不再往下執(zhí)行,如果執(zhí)行了會(huì)繼續(xù)向下匹配。 簡(jiǎn)介 Node.js? is a JavaScript runtime built on Chromes V8 JavaScript engine. Node.js uses an event-...

    CrazyCodes 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<