使用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实用小函数使用介绍
Nov 11 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
跟我学习javascript的严格模式
Nov 16 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
JavaScript代码生成PDF文件的方法
Feb 26 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
Vue表单验证插件Vue Validator使用方法详解
Apr 07 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 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代码
2007/03/08 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
Python多进程同步简单实现代码
2016/04/27 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
详解python之配置日志的几种方式
2017/05/22 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python web框架中实现原生分页
2019/09/08 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
教师绩效工资方案
2014/02/01 职场文书
小学毕业寄语大全
2014/04/03 职场文书
给老婆的检讨书
2015/01/27 职场文书
士兵突击观后感
2015/06/16 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技