使用express搭建一个简单的查询服务器的方法
本文介绍了使用express搭建一个简单的查询服务器的方法,分享给大家,具体如下:
使用到的技术栈有express、mysql.
项目结构:
service --node_modules --app.js --query.js
app.js支持调用服务,使用body-parser对request进行处理.
query.js实现链接数据库以及查询数据库的功能.
app.js代码如下:
varexpress=require('express');
varquery=require('./query')
varbodyParser=require('body-parser');
varcookieParser=require('cookie-parser');
varapp=express();
app.use(bodyParser.urlencoded({extended:false}))//返回的对象是一个键值对,当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
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)=>{
varopts=req.body;
query("SELECT*FROM`v_users`WHEREuserAcount=?",opts.userName).then((result)=>{
varresponse=result[0];
if(opts.password!==response.u_password){
returnres.send({
errorCode:'404',
errorMsg:'登录密码错误'
})
}
//模拟生成loginToken
varloginToken=response.userAcount+Math.random()*Math.pow(10,16)
res.send({
loginToken:loginToken
})
})
})
varserver=app.listen(3000,()=>{
console.log('success')
})
query.js代码如下:
(function(){
varmysql=require('mysql');
//varsession=require('cookie-session');
varquery=(sql,key)=>{
varconnection=mysql.createConnection({
host:'localhost',
user:'root',
password:'root123',
database:'m_users'
});
connection.connect()
varpromise=newPromise((resolve,reject)=>{
connection.query(sql,[key],function(error,results,fields){
if(error){
reject(error)
}else{
resolve(results);
}
});
connection.end();
});
returnpromise;
}
module.exports=query;
})()
实践总结:
1.express的入门级用法,以及对body-parser和mysql插件的用法。
2.尝试使用Inspector调试node程序,实现debugger,bytheway个人更习惯使用gulp来调试.
3.客户端使用post调取接口的时候要区分Content-Type的区别:
Content-Type:application/json;charset=UTF-8参数放在requestPayload
Content-Type:不设置或者application/x-www-form-urlencoded参数放在FormData
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。