使用的技术栈是express,mysql。项目结构:service--node_modules--app.js--query.jsapp.js支持调用服务,使用body-parser对请求进行处理。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时,key-中的值值对的形式为'String'或'Array';当它为真时,它可以是任何数据类型。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:'登录密码错误'})}//模拟生成loginTokenvarloginToken=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();});回报承诺;}模块。exports=query;})()实践总结:1.express的入门级用法,body-parser和mysql插件的用法2.尝试使用Inspector调试node程序来实现调试器,顺便说一句我比较习惯使用gulp来调试。3、客户端使用post调用接口时,必须区分Content-Type的区别:Content-Type:application/json;charset=UTF-8参数放在requestPayloadContent-Type:notset或者application/x-www-form-urlencoded参数放在FormData
