您好,登錄后才能下訂單哦!
本文介紹了使用express搭建一個(gè)簡(jiǎ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ù)以及查詢數(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來(lái)調(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
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。