欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-23 17:11:01
本文介绍了使用express搭建一个简单的查询服务器的方法,分享给大家,具体如下: 使用到的技术栈有express、mysql. 项目结构: servic...

本文介绍了使用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

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