使用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 iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
javascript 终止函数执行操作
Feb 14 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
Javascript之面向对象--封装
Dec 02 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
探索webpack模块及webpack3新特性
Sep 18 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
vue引入静态js文件的方法
Jun 20 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字符串的编码问题的详细介绍
2013/04/27 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
Python迭代用法实例教程
2014/09/08 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python中for用来遍历range函数的方法
2018/06/08 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
星空联盟C# .net笔试题
2014/12/05 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2014年文秘工作总结
2014/11/25 职场文书
本溪关门山导游词
2015/02/09 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB