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


Posted in Javascript onFebruary 09, 2018

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

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

Javascript 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
innerText和textContent对比及使用介绍
Feb 27 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
Sep 26 Javascript
浅谈javascript六种数据类型以及特殊注意点
Dec 20 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
Dec 17 Javascript
jQuery验证表单格式的使用方法
Jan 10 Javascript
微信小程序的动画效果详解
Jan 18 Javascript
详解js实时获取并显示当前时间的方法
May 10 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 Javascript
javascript实现蒙版与禁止页面滚动
Jan 11 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 #Javascript
JavaScript运行原理分析
Feb 09 #Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 #Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 #Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
Feb 09 #Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 #Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
Feb 09 #Javascript
You might like
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
javascript学习笔记--数字格式类型
2014/05/22 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
python中OrderedDict的使用方法详解
2017/05/05 Python
python模拟表单提交登录图书馆
2018/04/27 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
详解python中list的使用
2019/03/15 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python中append实例用法总结
2019/07/30 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
导师推荐信范文
2014/05/09 职场文书
校运会口号
2014/06/18 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
运动会宣传稿100字
2015/07/23 职场文书
初三语文教学反思
2016/03/03 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL