NodeJS模块概述
1、NodeJS模块
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。
一个 Node.js 文件就是一个模块。
2、NodeJS加载已安装模块
安装模块 axios
npm install axios
axios 会被安装到node_modules目录下
在js文件中使用require可以加载模块
var http = require(“axios");
加载node_modules下的模块不需要使用路径
3、NodeJS加载自定义模块
每一个js文件在Node中都被视为一个模块
1.创建模块 util.js
module.exports={
max:function(a,b){
return a>b?a:b;
}
}
2.加载util.js模块
var util = require("./util");
console.log(util.max(10,5));
加载自定义模块需要使用相对路径
NodeJS模块fs
1、NodeJS同步与异步
JavaScript 默认情况下是同步的,并且是单线程的。
这意味着代码无法创建新的线程并且不能并行运行。
同步与异步:
同步:阻塞程序执行,直到处理完毕才能继续执行
异步:在没有处理完成之前先执行后续代码段,通过回到函数接受处理结果
在 Node.js 中操作文件最简单的方式是使用 fs模块
fs模块支持同步与异步两种操作
2、NodeJS同步读取
var fs = require("fs")
// 同步 读取文件内容
var data = fs.readFileSync("main1.js", "utf8");
console.log("读取完毕");
console.log(data);
只有等待文件读取完毕以后才能执行后续代码
3、NodeJS异步读取
var fs = require("fs")
// 异步 读取文件内容
fs.readFile("main1.js", "utf8", function(err, data){
if(!err){
console.log(data);
}
})
console.log(“读取完毕”); //没有读取完毕
4、NodeJS同步写入
var fs = require("fs")
//同步 写入文件内容
fs.writeFileSync("data.txt", "你好")
console.log("写入完毕");
5、NodeJS异步写入
var fs = require("fs")
//异步 写入文件内容
fs.writeFile("data.txt", "你好", function(err){
if(!err){
console.log(err);
}
})
console.log(“写入完毕”); //没有写入完毕
NodeJS模块mysql
1、NodeJS 与MySql数据库
MySql是典型的数据库管理系统,占有较大的市场份额
重要概念:
数据库管理系统(包含多个数据库)
数据库(包含多个表)
表(包含多行)
行(包含多个字段)
字段(属性信息)
…
2、模块安装
Mysql模块是在NodeJS中与mysql数据库交互的模块
安装
npm install mysql
3、链接实例
通过 IP、端口、用户名、密码、数据库名指定
var mysql = require("mysql");
var con = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'polls'
})
4、链接
con.connect(function(err){
if(!err){
console.log("链接成功");
}
})
5、断开
con.end(function(err){
if(!err){
console.log("断开链接");
}
})
6、CURD
var str = "select name from ";
con.query(str, function(err, result){
if(!err){
console.log(result);
}
})
可以对查询结果进行遍历
7、事务支持
var str = "insert into person values('zzy"+i+"', 0)"
con.beginTransaction();
con.query(str, function(err){
if(!err){
console.log("插入成功");
}
})
con.commit()
NodeJS模块http
1、HTTP服务器
NodeJS 可以使用http模块来创建http服务器
http已经被集成在node的基础库中
var http = require("http")
var server = http.createServer(function(req, res){
res.statusCode=200;
res.setHeader("Content-Type", "application/json; charset=utf-8")
res.end('{"errorCode":0, "msg":"你好,Guest"}')
})
server.listen(8888, function(){
console.log("服务器启动成功");
})
2、NodeJS 获取HTTP 请求信息
HTTP信息是包含在参数request中的
通过url模块可以对request对象进行解析
req.url 中包含的就是路由信息
var urlInfo = url.parse(req.url);
console.log(urlInfo);