作用:将查询字符串转换为对象
引用:
var qs = require("querystring");
常用API:
qs.parse(str);
示例:
const qs = require("querystring");
var url = "uname=lilei&upwd=123456";
var obj = qs.parse(url);
console.log(obj);
输出:
{ uname: 'lilei', upwd: '123456' }
作用:将url地址各个部分转换为js对象属性
引用:
var url = require("url");
常用API:
1、var obj = url.parse(u)
作用:将地址解析为
示例:
var url = require("url"); var u = "http://www.baidu.com/index.html?uname=lilei"; var obj = url.parse(u); console.log(obj); // Url { // protocol: 'http:', // slashes: true, // auth: null, // host: 'www.baidu.com', // port: null, // hostname: 'www.baidu.com', // hash: null, // search: '?uname=lilei', // query: 'uname=lilei', // pathname: '/index.html', // path: '/index.html?uname=lilei', // href: 'http://www.baidu.com/index.html?uname=lilei' // }
2、var obj = url.parse(u,true)
作用:同解析,但是可以通过obj.query.xx访问查询字符串
示例:
var url = require("url"); var u = "http://www.baidu.com/index.html?uname=lilei"; var obj = url.parse(u,true); var uname = obj.query.uname; console.log(uname); //lilei
作用:操作文件系统中文件或目录
引用:
var fs = require("fs");
常用API:
阻塞状态下:
var data = fs.readFileSync(fileName); 作用:读取文件
fs.writeFileSync(fileName,str/buf); 作用:写入文件
fs.appendFileSync(fileName,str/buf); 作用:追加字符串进入文件
示例:
const fs = require("fs");
var str = "这是一段文字";
var fileName = "./index.html";
var data = fs.readFileSync(fileName);
console.log(data.toString());
/*
Title
欢迎访问Node服务器
*/
var fileName = "./name.log";
fs.writeFileSync(fileName,str);
var str1 = "这是一段追加文字";
fs.appendFileSync(fileName,str1);
什么是阻塞?
由于Node.js是单线程,一个程序只能等待另一个程序执行完毕后执行,故这种等待的状态叫做阻塞
非阻塞状态下API:
fs.readFile(fileName,(err,data)=>{}); 读取文件内容
fs.writeFile(fileName,(err,data)=>{}); 写入文件
fs.appendFile(fileName,(err,data)=>{});追加写入文件
示例:
const fs = require("fs");
var str = "这是一段文字";
var fileName = "./index.html";
fs.readFile(fileName,(err,data)=>{
if(err) throw err;
console.log(data.toString());
/*
Title
欢迎访问Node服务器
*/
})
fs.writeFile(fileName,str,(err)=>{
if(err) throw err;
console.log("写入成功");
})
fs.appendFile(fileName,str,(err)=>{
if(err) throw err;
console.log("追加成功");
})
作用:可用于编写一个基于http协议客户端程序(浏览器),也可以编写一个基于http协议的服务器端程序(apache)
案例:使用http协议编写一个web服务器
const http = require("http");
var server = http.createServer();
server.listen(3000);
server.on("request",(req,res)=>{
//req对象:客户请求消息
//res对象:服务器响应对象
//解析客户请求消息
//向客户端输出相应消息
console.log("node服务器接收到相应");
})
-----------------------------------------------------------------------------------------------------------------
引入:
const mysql = require("mysql");
使用案例:
const mysql = require("mysql");
var conn = mysql.createConnection({
host:"127.0.0.1",
user:"root",
password:"",
port:3306,
database:"database"
});
var sql = "select * from database";
conn.query(sql,(err,result)=>{
if(err) throw err;
console.log(result);
//result 为最终查询结果
});
注:
数据库中常见安全漏洞:sql注入
利用特殊字符 # ' or1=1 DROP select info完成对数据入侵操作
node.js解决方案
sql占位符
SELECT aid FROM xz_admin WHERE aname = ? ANDapwd = md5(?)
conn.query(sql,["tom","123"]);
作用:
提高效率,打打减少创建连接与关闭连接所需要的时间
如何使用
const mysql = require("mysql");
var pool = mysql.createPoolCluster({
host:"127.0.0.1",
user:"root",
password:"",
port:3306,
database:"database",
connectionLimit:5
})
var sql = "select * from database";
pool.query(sql,(err,result)=>{
if(err) throw err;
console.log(result);
//result 为最终查询结果
});