使用express搭建一个简单的查询服务器的方法
程序员文章站
2022-11-08 23:03:58
本文介绍了使用express搭建一个简单的查询服务器的方法,分享给大家,具体如下:
使用到的技术栈有express、mysql.
项目结构:
servic...
本文介绍了使用express搭建一个简单的查询服务器的方法,分享给大家,具体如下:
使用到的技术栈有express、mysql.
项目结构:
service --node_modules --app.js --query.js
app.js支持调用服务,使用body-parser对request进行处理.
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({ 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') })
query.js代码如下:
(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; })()
实践总结:
1.express的入门级用法,以及对body-parser和mysql插件的用法。
2.尝试使用 inspector调试node程序,实现debugger,by the way 个人更习惯使用gulp来调试.
3.客户端使用post调取接口的时候要区分content-type的区别:
content-type:application/json;charset=utf-8 参数放在requestpayload
content-type:不设置或者application/x-www-form-urlencoded 参数放在form data
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: util.Date与sql.Date转换
下一篇: 切牛排要顺着纹理吗,还是逆着纹理切才对?