1.解析get (req.query) post(req.body 需要中间件body-parser)
body-parser只能解析post数据 不能解析post文件
2.中间件
const express = require('express'); const bodyParser = require('body-parser'); var server=express(); server.listen(8000,console.log('ok')); //解析post第一步 中间件 body-parser server.use(bodyParser.urlencoded({})); // 解析get数据 一步就可以 // server.use('/',function(req,res){ // console.log(req.query) //get // }); // 解析post第二步 server.use('/',function(req,res){ console.log(req.body) //get });链式操作:请求路径一样,回调里面有第三个参数next 需要下一步 调用next() 结果为 a b
http请求是无状态的,两次请求之间服务器是不能区分出是不是同一个人。刷新一次就要登录,烦死人
cookie在浏览器(客户端)保存数据(每次请求都会从服务器带过来),请求了之后,服务器就知道你已经请求过了
不安全,保存在客户端,用户可以更改,大小有限制,4k
session在服务端保存数据 安全 大小无限 session是基于cookie实现的
cookie里面有一个session的ID,服务器利用sessionid找到session文件,读取,写入
const express=require('express'); const cookieParser=require('cookie-parser');//利用中间件获取cookie 1 const cookieSession=require('cookie-session') var server = express(); server.use(cookieParser());//利用中间件获取cookie 2 server.use(cookieSession({ keys:['aaa','bbb','ccc'], maxAge:3600*24*1000 })); server.use('/',(req,res)=>{ //req.secret='fdsfggfhdfhfdhhgf4ghfdh';//cookie签名 杜绝修改 //res.cookie('user','blue',{signed:true},{path:'/', maxAge:30*24*3600*1000})//设置发送cookie //res.clearCookie('user') //删除cookie //console.log('1',req.signedCookies) //签名的cookie //console.log('2',req.cookies) //利用中间件获取cookie 3 //未签名的cookie if(req.session['count']==null){ req.session['count']=1; }else{ req.session['count']++; } console.log(req.session) res.send('ok') }) server.listen(8000,console.log('ok'))body-parser只能解析post数据 不能解析post文件 application/x-www-form-urlencoded
multer 解析post文件 multipart/form-data
const express=require('express') //const bodyParser=require('body-parser') const multer=require('multer')//multer用来post文件 const fs=require('fs') const pathl=require('path') var server=express(); //server.use(bodyParser.urlencoded({extended:false})); var objMulter=multer({dest:'./www/upload'})//{dest:'./www/upload'}告诉文件上传到哪里去 server.use(objMulter.any())// server.post('/',(req,res)=>{ console.log(req.files[0].originalname)//req.body换成req.files var newname=req.files[0].path + pathl.parse(req.files[0].originalname).ext; fs.rename(req.files[0].path,newname,(err)=>{ if(err){ res.send('上传失败') }else{ res.send('上传成功') } }) }) server.listen(9000,console.log('ok')); <form action="http://localhost:9000/" method="POST" enctype="multipart/form-data"> 文件:<input type="file" name="f1" > <br> <input type="submit" value="上传"> </form>1.npm i mysql
2.连接数据库
mysql.createConnection(host,port,user,password)3.查询
db.query(SQL,(err,data)=>{})4.SQL语句
增删改查
增-INSERT INSERT INTO 表 (字段列表) VALUES(值列表) INSERT INTO `user_table` (`ID`, `username`, `password`) VALUES(0, 'blue2', '987654');
删-DELETE
改-UPDATE
查-SELECT SELECT 什么 FROM 表 SELECT * FROM `user_table`;
