Home > Web Front-end > JS Tutorial > Express builds query server

Express builds query server

亚连
Release: 2018-06-06 14:48:56
Original
1518 people have browsed it

This article mainly introduces how to use express to build a simple query server. Now I share it with you and give it as a reference.

This article introduces the method of using express to build a simple query server and shares it with everyone. The details are as follows:

The technology stack used includes express and mysql.

projects Structure:

service
--node_modules
--app.js
--query.js
Copy after login

app.js supports calling services and uses body-parser to process requests.

query.js implements the functions of linking to the database and querying the database.

app The .js code is as follows:

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')
})
Copy after login

query.js code is as follows:

(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;
})()
Copy after login

Practice summary:

1. Entry-level usage of express, as well as body-parser and mysql plug-ins usage.

2. Try to use Inspector to debug the node program and implement debugger, by the way. Personally, I am more accustomed to using gulp for debugging.

3. When the client uses post to call the interface, it must distinguish Content- The difference between Type:

Content-Type:application/json;charset=UTF-8 parameter is placed in requestPayload

Content-Type: does not set or application/x-www-form-urlencoded parameter I put it on Form Data

and compiled it for everyone. I hope it will be helpful to everyone in the future.

Related articles:

Use cheerio to make a simple web crawler in Node.js (detailed tutorial)

How to do it in vue Implement the parent component to pass multiple data to the child component

How to use Native in React to implement a custom pull-down refresh pull-up loaded list

The above is the detailed content of Express builds query server. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template