使用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 相关文章推荐
jQuery 连续列表实现代码
Dec 21 Javascript
5分钟理解JavaScript中this用法分享
Nov 09 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
javascript去除字符串左右两端的空格
Feb 05 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
移动端手指放大缩小插件与js源码
May 22 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
vue项目在线上服务器访问失败原因分析
Aug 14 Javascript
JavaScript实现缓动动画
Nov 25 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开源建站平台小结
2010/04/22 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
python绘制分布折线图的示例
2020/09/24 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
社团文化节策划书
2014/02/01 职场文书
敬老院活动总结
2014/04/28 职场文书
拉拉队口号
2014/06/16 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
初中政教处工作总结
2015/08/12 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书