NodeJs
1. Fs模块
读取:readFile
// 1.引用fs模块
var fs=require("fs");
// 2.读取
// fs.readFile("读取文件的路径","可选参数(不写的话可能出现乱码 所以你就写上) 字符编码",回调)
fs.readFile("index.txt","utf-8",function(err,data){
if(err){
return;
}
console.log(data);
})
删除:unlink
var fs=require("fs");
//fs.unlink("删除的文件路径",回调)
fs.unlink("index.txt",function(err){
if(err){
console.log(err);
return;
}
cosole.log("删除成功");
})
模块(把一个功能点封装成一个独立可以重复使用的js文件)书写 js文件因为作用域的问题,变量和函数只能在当前文件中进行使用,如果在当前模块外引用,必须使用exports(返回的是模块函数)
/module.exports(返回的是模块本身)让这些内容进行暴漏,使用的时候使用require来进行引入。
在入场工作的使用使用的都是module.exports(但是注意一个模块只能有一个)
使用模块记住一个口诀:创建–>暴露–>引用–>使用
2. exports基本使用
one.js:
// 我是封装了一个功能
var i="小明";
// 暴露当前需要被外部使用的数据
// exports.给暴露出去的数据起个名字(建议和暴露的内容名字相同)= 要暴露的数据
exports.i=i;
two.js
// 使用one。js这个模块里面的数据(必须建立关系 引用模块)
var one=require("./one");
// 使用引用模块的那个变量
console.log(one.i);
暴露多条数据:
one.js
// 我是封装了一个功能
var i="小明";
var o="捶捶";
// 暴露当前需要被外部使用的数据
// exports.给暴露出去的数据起个名字(建议和暴露的内容名字相同)= 要暴露的数据
exports.i=i;
exports.o=o;
two.js
// 使用one。js这个模块里面的数据(必须建立关系 引用模块)
var one=require("./one");
// 使用引用模块的那个变量
console.log(one.i);
console.log(one.o);
暴露函数
one.js
// 我是封装了一个功能
var i="小明";
var o="捶捶";
// 创建函数
function fun(){
return "大捶捶";
}
// 暴露当前需要被外部使用的数据
// exports.给暴露出去的数据起个名字(建议和暴露的内容名字相同)= 要暴露的数据
exports.i=i;
exports.o=o;
// 注意暴露函数的时候不加()
exports.fun=fun;
two.js
/ 使用one。js这个模块里面的数据(必须建立关系 引用模块)
var one=require("./one");
// 使用引用模块的那个变量
console.log(one.i);
console.log(one.o);
console.log(one.fun());
3. 通常情况下我们使用的是module.exports(一个模块只能有一个)
基本使用
one.js
var i="花花";
// module.exports=要暴露的数据
module.exports=i;
two.js
var one=require("./one");\
console.log(one);
问题:
如果我就是想写多个module.Expotrs怎么办?
目前无法解决,没有好的办法
4. 路由
根据url的不同来分发不同的代码块
代码:
//服务器搭建
var http=require("http");
//解决二次请求
var url=require("url");
http.createServer(function(req,res){
res.writeHead(200,{"content-type":"text/html;charset=utf-8"});
//解决二次请求
var reqUrl=url.parse(req.url,true);
if(reqUrl.pathname=="/favicon.ico"){
return ;
}
console.log(url.parse(req.url,true));
//开始完成路由
//路由是根据url的不同分发不同的功能
//如果传递活过来的是注册,就执行注册的代码
if(reqUrl.pathname=="/reg"){
console.log("执行注册的代码");
res.end("注册名是****");
}
//如果传递过来的是登录,就执行登陆的代码
if(reqUrl.pathname=="/login"){
console.log("执行登陆的代码");
res.end("登录名是****");
}
}).listen(3000);
5. Express
概念:
express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性和丰富的 HTTP 工具
功能
- 扩展了web所需要的基本功能
- 丰富了HTTP工具
- 可以快速搭建一个网站
Express就是一个node的企业常用的第三方库 通过他可以简化对于http相关操作的语法进行快速的网站搭建
使用
下载:
- cd当前的文件夹下,初始化npm init
- 开始下载 npm install空格–save空格express
创建基本服务
代码
//1.引用express;
var express=require("express");
//2.获取express方法
var app=express();
//3.开始使用
app.get("/",function(req,res){
//5.响应内容
res.send("铁锤契柯夫");
})
//4.监听端口
app.listen(3000);
路由创建以及*通配符匹配所有路径(404页面)
代码
//1.引入express模块
var express=require("express");
//2.获取express方法
var app=express();
//1.创建一个路由
app.get("/",function(req,res){
res.send("我是首页");
})
//创建第二个路由
app.get("/phone",function(req,res){
res.send("联系我们");
})
//创建第三个路由
app.get("/user",function(req,res){
res.send("组织结构");
})
//创建第四个路由
app.get("/map",function(req,res){
res.send("地图");
})
//*号匹配所有的路径(必须写在最下面)
app.get("/*",function(req,res){
res.send("404");
})
//端口不能忘记
app.listen(3000);
中间件
每次接收到请求都会被先调用的函数 。就是给一些特定功能添加的一个场所。所有路由都是用的内容可以放入中间件中.
中间件其实就是在进入路由之前都会先执行中间件里面的代码(通常放置一些公共代码在其中)
代码
var express=require("express");
var app=express();
//创建中间件
app.use(function(req,res,next){//next必须有
console.log("aaa");
//注意:在中间件的使用中必须要加next(),意思是下一步
next();
})
//创建第一个路由
app.get("/",function(req,res){
res.send("我是首页");
})
//创建第二个路由
app.get("/phone",function(req,res){
res.send("联系我们");
})
//创建第三个路由
app.get("/user",function(req,res){
res.send("组织构架");
})
//创建第四个路由
app.get("/map",function(req,res){
res.send("地图");
})
// *号匹配所有的路径(必须写在最下面)
app.get("/*",function(req,res){
res.send("404");
})
//端口能忘记
app.listen(3000);