1 简单介绍
node是框架的基础,把后台的数据显示到界面上
node.js 可以理解为是js运行在服务端的一种操作
1.1 简单的运用
在终端获取js数据时,在运行node命令时,可以省略js文件的.js的后缀名,因为node.js命令默认的是以.js结尾。
1.2 导出文件
function add(a,b){
return a+b;
}
function reduce(a,b){
return a-b;
}
// module.exports.add=add; //导出一种方法
// 将多种的方法一块导出
module.exports={
add,
reduce
}
1.3 模块的导入
var first = require("./04index1.js");
var second = require("./05index2.js");
/*
./表示同级路径,不能去掉
require后面的模块 默认会从node_module文件夹当中找
找到的时候 不需要添加路径,
如果require后面引入的模块不是从node_modules文件夹当中引入的
而是我们自定义的模块,那么必须添加路径
*/
first.add(10,11);
console.log(second.add(10,22))
// 即使模块里面的方法同名也没有关系,因为我们在调用的时候,
给他重新命名了
1.4 封装成模块化的好处
- 1、变量作用域只在声明它的文件内有效,出了这个文件就不再有效
- 2、各个js文件记载顺序没有要求
- 3、模块多次引入只会加载一次(前提是模块内部代码没有改变)
2 fs 模块概述
在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法。
2.1 fs模块的使用
在node.js中所有的模块使用都要先下载下来
通过 npm install (加模块)的语句。
fs模块是node.js的内置模块
所以不需要下载,可直接调用
2.2 同步异步写入
可以写任意类型的文件 如:MP4,jpg,zip,png,doc,mp3...等等
2.2.1 同步写入
// 同步写入
fs.writeFileSync("西游记.txt","吴承恩");
// 在执行node语句 node fs之后
// 我们可以看到会创建一个文件西游记.txt,里面的内容为:吴承恩;
2.2.2 异步写入
// 参数1:路径
// 参数2:写入的数据
// 参数3:回调函数
fs.writeFile("红楼.txt","林妹妹",function(err){
// 查看文件是否创建成功
if(err){
// 错误的情况下执行
console.log(err)
}
else{
// 成功的情况下执行
console.log("success")
}
})
//如果我们再次向红楼.txt文件下入数据的话,
那么后面的数据会覆盖了前面的数据
2.3 mkdirSync命令
- mkdirSync命令是创建文件夹的
// 创建一个public文件夹
// 我么可以先判断是否已经创建过public文件夹
fs.exists("public",function(isexist){
if(!isexist){//如果不存在
// make directory 制作文件夹
fs.mkdirSync("public")
// 执行node命令之后,我们会发现会创建一个public的文件夹
}
})
2.4 readFile命令
- readFile命令是读取文件的命令
fs.readFile("西游记.txt",function(err,data){
if(err){
console.log(err);
}
else{
console.log(data.toString());
}
})
2.5 appendFile命令
- appendFile,命令是向文件里面追加加内容
fs.appendFile("西游记.txt","\n"+"jiayou",function(err){
if(err){
console.log(err);
}
else{
console.log("success");
}
})
3.1 http模块的使用
- http node自带模块 网络请求的基础模块 最简单,最原始
var http = require("http");
// 参数1:前端发起的请求对象 request
// 参数2:后端响应的对象 response
var app = http.createServer(function(req,res){
res.writeHead(200,"ok",{
"Content-Type":"text/html"
})//是解决中文乱码问题
res.write("<meta charset='UTF-8'><h1>我是zhao</h1>")
res.end();
})
app.listen("8080",function(){
console.log("8080服务器启动...")
})
//首先用node命令执行,启动服务器。然后在浏览器在访问端口号8080,进行数据的请求