이 기사에서는 Express를 사용하여 간단한 쿼리 서버를 구축하는 방법을 소개하고 자세한 내용을 모든 사람과 공유합니다.
사용되는 기술 스택에는 Express 및 mysql이 포함됩니다.
프로젝트 구조:
서비스--node_modules--app.js--query.js
app.js는 서비스 호출을 지원하고 body-parser를 사용하여 요청을 처리합니다.
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({ 확장: false }))//반환된 객체는 키-값 쌍입니다. 확장이 false인 경우 키-값 쌍의 값은 '문자열' 또는 '배열' 형식입니다. 데이터 유형. app.use(bodyParser.json())//도메인 간 지원 app.all('*', function(req, res, next) { res.header(Access-Control-Allow-Origin, *); res. 헤더('액세스 제어 허용 방법', 'PUT, GET, POST, DELETE, OPTIONS'); res.header(Access-Control-Allow-Headers, X-Requested-With); res.header('Access-Control-Allow-Headers', 'Content-Type');//로그 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('성공') })
query.js 코드는 다음과 같습니다.
(function() { var mysql = require('mysql'); // var session = require('cookie-session'); var query = (sql,key) => { var 연결 = mysql.createConnection({ 호스트: 'localhost', 사용자: 'root', 비밀번호: 'root123', 데이터베이스: 'm_users' }) Connection.connect() var promise = new Promise((resolve,reject)=>{ Connection.query(sql,[key], function(error, results, fields) { if(error){ject(error) }else{solve(results); } }); Connection.end(); }); return promise; } module.exports = 쿼리;})()
연습 요약:
1. Express의 초보 수준 사용과 body-parser 및 mysql 플러그인 사용.
2. Inspector를 사용하여 노드 프로그램을 디버그하고 디버거를 구현해 보세요. 그런데 개인적으로 디버깅에는 gulp를 사용하는 것이 더 익숙합니다.
3. 클라이언트가 post를 사용하여 인터페이스를 호출할 때 Content-Type의 차이점을 구별해야 합니다.
Content-Type:application/json;charset=UTF-8 매개변수는 requestPayload에 배치됩니다.
Content-Type: 설정되지 않았거나 application/x-www-form-urlencoded 매개변수가 양식 데이터에 배치되었습니다.
위의 내용은 이 기사의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 VeVb Wulin Network를 지지해 주시길 바랍니다.