使用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 相关文章推荐
JS模拟面向对象全解(二、类型与赋值)
Jul 13 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 Javascript
移动手机APP手指滑动切换图片特效附源码下载
Nov 30 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
JS如何判断json是否为空
Jul 06 Javascript
原生js实现放大镜效果
Jan 11 Javascript
小程序实现人脸识别功能(百度ai)
Dec 23 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
Sep 18 Javascript
24个解决实际问题的ES6代码片段(小结)
Feb 02 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
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
python操作CouchDB的方法
2014/10/08 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
毕业自我鉴定
2013/11/05 职场文书
男方父母证婚词
2014/01/12 职场文书
节能标语大全
2014/06/21 职场文书
反对邪教标语
2014/06/30 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
暑假学习心得体会
2014/09/02 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
公司禁烟通知
2015/04/23 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
MySQL RC事务隔离的实现
2022/03/31 MySQL
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技