nodejs

 

目录

一.初识nodejs

1.特点

2.适合什么应用场景

二.node认知

三.node 模块

1.url

2.express框架

3.formidable

4.body-parser

5.socket.io 

四.路径

五.模板引擎

六.中间件



一.初识nodejs

1.特点

1.单线程:好处 低硬件成本 高效率  充分利用线程资源 操作系统不再有线程创建,销毁的时间开销

                 坏处  健壮性差一个线程崩溃整个服务就崩溃了

2.非阻塞IO

                  好处   提高程序的执行效率线程利用率100%

3.事件驱动

                  "事件环"机制通过回调函数的方式实现事件循环在回调函数执行的时候依旧可以去执行其他的请求事件

                   

2.适合什么应用场景

善于IO不善于计算如果需要大量的计算资源的话就不建议使用node node 善于任务调度。

适合场景:1.用户表单收集 2.长连接的实时交互 

不适合场景:无法与老牌的jsp php 抗衡 缺少健壮性考虑

二.node认知

1.node 没有web容器的概念 是通过路由url进行控制的。

三.node 模块

1.url

引入url var url=require("url");

var queryObj=url.parse(req.url,true).query 参数true表示将得到的结果转化为对象

2.express框架

1. 引入静态文件

var express=require("express");
var app = express();
app.use(express.static("static"));//设置静态文件路径
app.use('/static',express.static("static"));//设置静态文件路径这样设置的话就会将static加入url访问路径中

 2.express中所有的路由(中间件)的顺序至关重要匹配第一个就不会继续往下匹配了。

解决办法:1.具体的往上写,抽象的往下写。

解决办法:2.检索数据库是否存在

3.app.use可以匹配多个路径

4.get,post方法的使用

 

3.formidable

1.用于文件的上传和下载以及post请求的处理

4.body-parser

用于处理post请求的body

5.socket.io 

用于处理http长连接问题 

结合express 使用

首先需要npm安装

npm install socket.io

服务器代码

var express=require("express");
var app=express();
var http=require("http").Server(app);
var io =require("socket.io")(http);
io.on("collection")
http.listen(3000);

客户端代码

//首先需要引包
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket=io();
</script>

四.路径

在模块require引用的时候默认是相对路径 在引用外部文件的时候是要用绝对路径 方法_dirname

五.模板引擎

后台模板引擎(npm第三方包)

1.ejs   

2.jade

六.中间件

get,post,use等这些东西就是中间件

如果get、post回调函数中没有next参数那么就匹配上第一个路由,就不会往下匹配了。如果想往下匹配的话,那么就需要些next()例如

app.get("/",function(req,res,next){
console.log("1")
next()
});

app.get("/",function(req,res){
console.log("2")
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值