node学习笔记

it2022-05-05  154

1.express数据解析

      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

2.express-cookie,session

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>

3.node操作数据库

const mysql=require('mysql'); //1.连接 //createConnection(哪台服务器, 用户名, 密码, 库) var db=mysql.createConnection({host: 'localhost', user: 'root', password: '123456', database: '20161222'}); //2.查询 //query(干啥, 回调) db.query("SELECT * FROM `user_table`;", (err, data)=>{ if(err) console.log('出错了', err); else console.log('成功了'); console.log(JSON.stringify(data)); });

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`;

 


最新回复(0)