Maison  >  Article  >  interface Web  >  Serveur de requêtes de builds express

Serveur de requêtes de builds express

亚连
亚连original
2018-06-06 14:48:561476parcourir

Cet article présente principalement comment utiliser express pour créer un serveur de requêtes simple. Maintenant, je le partage avec vous et le donne comme référence.

Cet article présente la méthode d'utilisation d'Express pour créer un serveur de requêtes simple et le partage avec tout le monde. Les détails sont les suivants :

La pile technologique utilisée comprend Express et MySQL.

Structure du projet :

service
--node_modules
--app.js
--query.js

app.js prend en charge les services d'appel et utilise un analyseur de corps pour traiter les requêtes

query.js implémente les fonctions de liaison et d'interrogation de la base de données.

Le code app.js est le suivant :

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')
})

Le code query.js est le suivant :

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

Résumé pratique :

1 . Utilisation d'entrée de gamme d'Express, ainsi que utilisation de body-parser et du plug-in mysql.

2. Essayez d'utiliser Inspector pour déboguer le programme de nœud et implémenter le débogueur, d'ailleurs, personnellement, je suis plus habitué à utiliser gulp pour le débogage

3. interface post-appel, elle doit distinguer Content- La différence entre Type :

Content-Type : application/json;charset=UTF-8 le paramètre est placé dans requestPayload

Content-Type : non défini ou le paramètre application/x-www-form-urlencoded, je l'ai mis au-dessus des données du formulaire

et je l'ai compilé pour tout le monde. J'espère qu'il sera utile à tout le monde à l'avenir.

Articles associés :

Utiliser Cheerio pour créer un robot d'exploration Web simple dans Node.js (tutoriel détaillé)

Comment faire in vue Implémenter le composant parent pour transmettre plusieurs données aux composants enfants

Comment utiliser Native dans React pour implémenter une actualisation déroulante personnalisée pour extraire la liste chargée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn