This article introduces how to build a simple query server using express and shares it with everyone. The details are as follows:
The technology stacks used include express and mysql.
Project structure:
service--node_modules--app.js--query.js
app.js supports calling services and using body-parser to process requests.
query.js implements the functions of linking to the database and querying the database.
The app.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 }))//The returned object is a key-value pair. When extended is false, the value in the key-value pair is in the form of 'String' or 'Array'. When it is true, it can be any data type. app.use(bodyParser.json())//Cross-domain support 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();});//Log in 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:'Incorrect login password' }) } //Simulate and generate loginToken var loginToken = response.userAcount + Math.random()*Math.pow(10,16) res.send({ loginToken:loginToken }) })})var server = app.listen(3000,()=>{ console.log('success') })
The 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;})()
Practice summary:
1. Entry-level usage of express, as well as usage of body-parser and mysql plug-ins.
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 the difference of Content-Type:
Content-Type:application/json;charset=UTF-8 parameter is placed in requestPayload
Content-Type: Not set or the application/x-www-form-urlencoded parameter is placed in Form Data
The above is the entire content of this article. I hope it will be helpful to everyone’s study. I also hope everyone will support VeVb Wulin Network.