Cette fois, je vais vous montrer comment construire un serveur de requêtes avec Express. Quelles sont les précautions pour construire un serveur de requêtes avec Express. Voici un cas pratique, jetons un oeil.
Cet article explique comment utiliser Express pour créer un serveur de requêtes simple et le partager avec tout le monde. Les détails sont les suivants :
Les piles technologiques utilisées incluent Express et MySQL.
Structure du projet :
service --node_modules --app.js --query.js
app.js prend en charge les services d'appel et l'utilisation de body-parser pour traiter les demandes
. query.js implémente les fonctions de liaison à la base de données 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é de la pratique :
1. Utilisation d'entrée de gamme d'Express, ainsi que utilisation des plug-ins body-parser et mysql.
2. Essayez d'utiliser Inspector pour déboguer le programme de nœud et implémenter le débogueur, en passant. Personnellement, je suis plus habitué à utiliser gulp pour le débogage.
3.Lorsque le client utilise l'interface post-appel, il doit distinguer la différence de Content-Type :
Le paramètre Content-Type:application/json;charset=UTF-8 est placé dans requestPayload
Content-Type : n'est pas défini ou le paramètre application/x-www-form-urlencoded est placé dans les données du formulaire
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Express+multer implémente les étapes spécifiques pour télécharger des images de nœuds
Comment vue exploite les images statiques et les images réseau
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!