node点滴yan

node从8版本开始支持async语法了
这些node开源工具你值得拥有(下)

linux node 版本升级 用n模块

nodejs中 spawn 、fork、exec、execFile的区别

总结nodejs的优缺点
node,express
Node的整体架构图

在这里插入图片描述

Node Standard Library: 是我们每天都在用的标准库,如Http, Buffer 模块

Node Bindings: 是沟通JSC++的桥梁,封装V8和Libuv的细节,向上层提供基础API服务

第三层是支撑 Node.js 运行的关键,由 C/C++ 实现:
1. V8 是Google开发的JavaScript引擎,提供JavaScript运行环境,可以说它就是 Node.js 的发动机
2. Libuv 是专门为Node.js开发的一个封装库,提供跨平台的异步I/O能力
3. C-ares:提供了异步处理 DNS 相关的能力
4. http_parser、OpenSSL、zlib 等:提供包括 http 解析、SSL、数据压缩等其他的能力

v8只是node的js执行引擎。

node优势
Nodejs区别于传统应用的特点:
1. 异步事件驱动
2. 非堵塞I/O
3. 单线程(这里指主线程)
4. 性能出众
V8 架构优势总结
内联代码:
隐藏类:
内联缓存: 
编译为机器码: 
垃圾回收: 

为什么V8引擎这么快?

koa express koa1 koa2对比
Koa

洋葱的中间件模型
koa的中间件模式与express的是不一样的,koa是洋葱型,express是直线型
核心的四个文件
Application,context, request, response
把所有的属性挂到context上边,contest挂到response上,request上。

app.listen
app.handleRequest
app.compose
const logger = ()=>{
    return new Promise((resolve,reject)=>{
      setTimeout(() => {
        console.log('logger');
        resolve(); 
      }, 1000);
    })
}
app.use(async (ctx,next)=>{ // 上下文
  await logger();
  return next();
});

// Koa路由 routes
app.use(index.routes(), index.allowedMethods())
app.use(users.routes(), users.allowedMethods())

koa 常用 api
app.listen
app.on
app.use
koa 常用的 工具
koa-router
koa-bodyparser
koa-views
koa-static
koa-session
koa-jwt
koa-helmet
koa-compress
koa-logger
koa/cors 跨域处理

#### koa-jwt

exporess 常用的中间件
express 应用
const express = require('./express');
const path = require('path');
// 模板引擎 koa-views
const app = express();
app.set('views','view'); // 将默认的存放路径更改
app.set('view engine','.html');// 默认使用可以使用html文件

app.engine('.html',require('ejs').__express);//如果遇到.html用ejs来渲染
app.get('/',function(req,res){
   console.log(req.a)
   res.sendFile(path.resolve(__dirname,'package.json'))
   // res.send(301);
})

app.listen(3000);

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值