使用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 相关文章推荐
javascript基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
JavaScript中判断整字类型最简洁的实现方法
Nov 08 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
JS实现不规则TAB选项卡效果代码
Sep 16 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
Jan 28 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
Angular 4.0学习教程之架构详解
Sep 12 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
Sep 13 Javascript
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
js抽奖转盘实现方法分析
May 16 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
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
详解javascript函数的参数
2015/11/10 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python 代码性能优化技巧分享
2012/08/07 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python正则中最短匹配实现代码
2018/01/16 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Flask配置Cors跨域的实现
2019/07/12 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python异常处理机制结构实例解析
2020/07/23 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL