国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

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

2024-05-06 15:21:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文介紹了使用express搭建一個(gè)簡(jiǎn)單的查詢(xún)服務(wù)器的方法,分享給大家,具體如下:

使用到的技術(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ù)以及查詢(xún)數(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ù)類(lèi)型。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的入門(mén)級(jí)用法,以及對(duì)body-parser和mysql插件的用法。

2.嘗試使用 Inspector調(diào)試node程序,實(shí)現(xiàn)debugger,by the way 個(gè)人更習(xí)慣使用gulp來(lái)調(diào)試.

3.客戶(hù)端使用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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 内江市| 松潘县| 舞钢市| 句容市| 田林县| 杂多县| 环江| 永善县| 定安县| 原阳县| 彰化市| 河源市| 突泉县| 中山市| 永登县| 澳门| 建宁县| 东乌| 彩票| 石林| 客服| 秦皇岛市| 桦川县| 清徐县| 谷城县| 泉州市| 南岸区| 吴江市| 陕西省| 颍上县| 色达县| 平顺县| 会东县| 宁明县| 景泰县| 中山市| 天津市| 江北区| 拉孜县| 邵武市| 云林县|