使用express搭建一個簡單的查詢服務器的方法
本文介紹了使用express搭建一個簡單的查詢服務器的方法,分享給大家,具體如下:
使用到的技術棧有express、mysql.
項目結構:
service --node_modules --app.js --query.js
app.js支持調用服務,使用body-parser對request進行處理.
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 }))//返回的對象是一個鍵值對,當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;
})()
實踐總結:
1.express的入門級用法,以及對body-parser和mysql插件的用法。
2.嘗試使用 Inspector調試node程序,實現(xiàn)debugger,by the way 個人更習慣使用gulp來調試.
3.客戶端使用post調取接口的時候要區(qū)分Content-Type的區(qū)別:
Content-Type:application/json;charset=UTF-8 參數(shù)放在requestPayload
Content-Type:不設置或者application/x-www-form-urlencoded 參數(shù)放在Form Data
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

