使用express搭建一个简单的查询服务器的方法

本文介绍了使用express搭建一个简单的查询服务器的方法,分享给大家,具体如下:

使用到的技术栈有express、mysql.

项目结构:

service
--node_modules
--app.js
--query.js

app.js支持调用服务,使用body-parser对request进行处理.

query.js实现链接数据库以及查询数据库的功能.

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的时候,则可为任何数据类型。
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程序,实现debugger,by the way 个人更习惯使用gulp来调试.

3.客户端使用post调取接口的时候要区分Content-Type的区别:

Content-Type:application/json;charset=UTF-8 参数放在requestPayload

Content-Type:不设置或者application/x-www-form-urlencoded 参数放在Form Data

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容