使用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.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
Nov 16 Javascript
javascript处理table表格的代码
Dec 06 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
Jul 02 Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
Feb 04 Javascript
jquery做的一个简单的屏幕锁定提示框
Mar 26 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
JavaScript性能优化之小知识总结
Nov 20 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
小程序实现展开/收起的效果示例
2018/09/22 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python版微信红包分配算法
2015/05/04 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
Python常用编译器原理及特点解析
2020/03/23 Python
python如何保存文本文件
2020/06/07 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
结婚邀请函范文
2014/01/14 职场文书
十佳青年事迹材料
2014/08/21 职场文书
降价通知函
2015/04/23 职场文书
辞职信怎么写?
2019/05/21 职场文书
MYSQL 运算符总结
2021/11/11 MySQL