NodeJs 2

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相关操作的语法进行快速的网站搭建
使用
下载:

  1. cd当前的文件夹下,初始化npm init
  2. 开始下载 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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值