node.js 连接mysql 获取getpost的信息实现查询 以及插入

要做的准备工作

1.先把express 和mysql依赖包安装好
2.在node.js文件中引入express 和mysql

后端文件server.js

var express = require('express');
var app = express();
var mysql = require('mysql');
var url = require('url');
var bodyParser = require('body-parser');

app.all('*',function(req,res,next){
    res.header('Access-Control-Allow-Origin','*');//*表示可以跨域任何域名都行 也可以填域名表示只接受某个域名
    res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type');//可以支持的消息首部列表
    res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');//可以支持的提交方式
    res.header('Content-Type','application/json;charset=utf-8');//请求头中定义的类型
    next();
});
//url解析 以键值对的形式
app.use(bodyParser.urlencoded({extended:true}));//Context-Type 为application/x-www-form-urlencoded 时 返回的对象是一个键值对,当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
app.use(bodyParser.json());//用于解析json 会自动选择最为适宜的解析方式

var connection = mysql.createConnection({
	host		: 'ip地址 主机地址 比如localhost',
	user		: '用户名',
	password	: '密码',
	database	: '库名'
});
//如果连接成功  可以查询到数据表的信息

connection.connect();
connection.query('SELECT * FROM table.database',function(error, results, fields){
	if(error) throw error;
	console.log("结果是:",results);
});

get接口

app.get('/list',function(req,res){
    console.log(req.url);
    var parseObj = url.parse(req.url, true);
    //console.log(parseObj);
    var queryObj = parseObj.query;
    res.status(200);
    console.log('发送过来的信息:');
    console.log(queryObj);
    //不用语句拼接的方式 使用占位符
    
    var sql = 'SELECT * FROM userlogin.usersignup WHERE actName = ?';
    connection.query(sql,[queryObj.actName],function(error, results, fields){
        if(error) throw error;
        console.log("结果是:",results);
         var number = results.length;
		 var newResult = changeResult(results);
        var respJson = {
            code:200,
            success:true,
			number:number,
			list:newResult
        }
        res.json(respJson);
    });
});

这个接口中发送过来一个actName的信息 并在表中的catName=发送过来的信息的 结果返回给前端。

post接口

function getNowDate(){
	function addZero(num){
		var str = '';
		if(num>=0 && num<10){
			str = '0'+num;
		}else{
			str = ''+num;
		}
		return str;
	}
	var now = new Date();
	var returnStr = '';
	var year = now.getFullYear();
	var month = now.getMonth();
	month = addZero(month);
	var date = now.getDate();
	date = addZero(date);
	var hours = now.getHours();
	hours = addZero(hours);
	var min = now.getMinutes();
	min = addZero(min);
	returnStr = year+'-'+month+'-'+date+' '+hours+':'+min;
	return returnStr;
}
app.post('/sign',function(req,res){
    var reqBody = req.body;
	var time = getNowDate();//这里有个获取时间的函数 但是是以字符段存储的
	reqBody.time = time;
	var  addSql = 'INSERT INTO usersignup(Id,name,phone,mark,time,actName) VALUES(0,?,?,?,?,?)';
	var  addSqlParams = [];
	addSqlParams[0] = reqBody.name.toString();
	addSqlParams[1] = reqBody.phone.toString();
	addSqlParams[2] = reqBody.mark.toString();
	addSqlParams[3] = reqBody.time;
	addSqlParams[4] = reqBody.actName;
	connection.query(addSql,addSqlParams,function (err, result) {
        if(err){
         console.log('[INSERT ERROR] - ',err.message);
		 res.json('"error":"报名粗错了"');
         return;
        }
		var returnObj = {
			code:200,
			name:reqBody.name,
			time:reqBody.time,
			phone:reqBody.phone,
		}
		res.json(returnObj);
       console.log('--------------------------INSERT----------------------------');
       console.log('INSERT :',result);        
       console.log('-----------------------------------------------------------------\n\n');  
	   res.end();
	});
});

一个报名接口,id字段自增 所以不用设值,后面分别是名字 电话 时间 报名的活动名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值