资讯专栏INFORMATION COLUMN

使用express搭建一个简单的查询服务器

Vixb / 2429人阅读

摘要:尝试使用调试程序,实现个人更习惯使用来调试客户端使用调取接口的时候要区分的区别参数放在不设置或者参数放在

使用到的技术栈有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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107336.html

相关文章

  • 使用Express搭建一个简单务器

    摘要:框架应用程序是一个保持最小规模的灵活的应用程序开发框架,为和移动应用程序提供一组强大的功能。路由基本使用下载新建一个文件,然后输入然后运行打开就出现请求和响应应用使用回调函数的参数和对象来处理请求和响应的数据。 Express框架 Web 应用程序 Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。 AP...

    gghyoo 评论0 收藏0
  • express搭建网站

    摘要:先建个简单的服务器当然你先得安装使用,如果这里的代码复制后运行不了请移步我的下载源码顺手给我个小星星鼓励哈运行后访问默认匹配的路由是,多个要使用方法,但是使用了,或者就不能使用到达下一个了是添加路由的方法,忽略大小写,反斜杠,进行匹配时不 先建个简单的服务器 当然你先得安装express npm install express //使用express,如果这里的代码复制后运行不了请移步...

    Kosmos 评论0 收藏0
  • 开始使用GraphQL

    摘要:实践由于是一种规范,它不是一种实现,如果要自己实现还是比较难的,不用担心,强大的开源社区已经帮我们准备好了,这就是开源项目。然后执行这样项目就启动了,如下图注这里存在跨域问题,所以服务器端需要使用解决跨域问题,具体看代码。 为什么要用graphql? 让我们先回顾一下我们现在所使用的API设计风格 纯rest:一个endpoint对应一个资源 优点:灵活、解构缺点:由于一个endpoi...

    UsherChen 评论0 收藏0
  • Express 搭建务器

    摘要:指定需要处理的路由回调函数,即请求此路由的处理函数,它可以接收两个参数三个参数,四个参数。如果匹配到自定义的路由,立即执行回调函数,如果处理函数中没有则不再往下执行,如果执行了会继续向下匹配。 简介 Node.js® is a JavaScript runtime built on Chromes V8 JavaScript engine. Node.js uses an event-...

    CrazyCodes 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<