В этой статье рассказывается, как создать простой сервер запросов с помощью 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, значение в паре ключ-значение имеет форму «Строка» или «Массив». Если оно имеет значение true, оно может быть любым. тип данных. 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'); //Log в 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') })
Код query.js выглядит следующим образом:
(function() { var mysql = require('mysql'); // var session = require('cookie-session'); var query = (sql,key) => { var Connection = mysql.createConnection({host: «localhost», пользователь: «root», пароль: «root123», база данных: «m_users» }); Promise((resolve,reject)=>{ Connection.query(sql,[key], function(error,Results,fields) {if(error){Отклонить(ошибка) }else{Resolve(results); } }); Connection.end(); }); вернуть обещание } Module.exports = запрос;})()
Итог практики:
1. Использование экспресс-версии начального уровня, а также использование плагинов 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.