NodeJS

1、什么是nodeJS

    NodeJS一个基于chrome的V8引擎的JAVascript的运行环境。NodeJS使用了一个事件驱动以及非阻塞式的I/O式模型

    NodeJS的NPM是全球最大的包管理网站

    V8引擎:
        内核, 脚本引擎 ,  渲染引擎
    I/O: input  output
    
    什么是npm?
        1、包管理器
        2、是一个命令
        3、是一个网站

    npm常用的命令
        npm install  :安装pack.json中的依赖
        npm install <包名> --save  生产环境中的依赖
        npm install <包名> --save-dev 开发环境中的依赖
        npm install <包名> -g  全局安装(能不用就不用)
        npm uninstall <包名>  删除
        npm update <包名> 升级
        npm  cache clean  清除缓存

                                                     
    yarn包管理网站(推荐)
        cnpm  install  yarn -g   安装
        yarn init ==npm  init
        yarn add <包名> 等价于 npm install <包名> -S  生产环境中的依赖
        yarn add <包名> -dev  等价于  npm install <包名> -D  开发环境中的依赖
       yarn  add  包名  -g   全局安装
        yarn upgrade [package]
        yarn remove [package]
        yarn install
 安装的过程是异步的,会有缓存,下次安装的时候会缓存中进行安装。

2、NodeJS与JavaScript有什么区别

    1、原生JS运行js文件的时候需要依赖于浏览器
    2、nodeJS运行文件的时候服务  终端
    3、原生JS的东西会有兼容性。Node中不会有兼容性
    4、本地文件读写  服务器创建   连接数据库(原生JS无法做到的)  nodeJS都可以做到
    (原生JS中有BOM,DOM,但是NodeJS是在服务端的JS环境因此是没有BOM,DOM的概念(跨域的概念也没有)) 
    (NodeJS中也有原生JS中没有的属性,process, global,)
    (NodeJS可以调用底层的API  文件的读写,服务器的创建,环境变量的配置,连接数据库,操作数据库。。。)

如何进入Nod的交互模式
node回车。
退出:ctrl+c 2次 || ctrl+d

3、nodeJS能做什么?Node的优点和缺点

    文件的读写  服务器的创建   连接数据库等等....

    优点:做项目中做中间层的使用,高并发。()

    缺点:不适合大量的计算

4、模块化

    requrieJS     modules    seaJS(不常用)    commonJS

    AMD规范       modules    CMD规范    commonJS

    AMD规范:依赖前置
    CMD规范:依赖就近

    规范:
        一个模块的导入和导出

    modulre: import   export default   export
    commonJS:    require  module.exports

nodeJS中的模块分为哪几个部分?
1,内置模块 :http
2,第三方模块 : 需要通过npm 进行下载的
3,自定义模块 :自己编写的模块

5、路由

    路由:根据用户请求的路径返回不同的页面或者数据

    前端路由:前端路由主要应用在单页面开发,前端路由用户请求的路径发生改变的时候不会经过后端的,
        主要的原理是通过onhashchange  或者是history.js进行页面的切换。前端路由主要是用来做数据渲染
    后端路由:根据用户请求的路径返回不同的页面或者数据   

5-1:supervisor
步骤:
1. cnpm install supervisor -g
2.json:scripts: dev:“supervisor server”
3.npm run dev

6、get传递的参数在node中通过query进行接收

    res:response  响应

    常用的属性
        res.write 响应 多次
        res.end 结束的响应  (一次 )
        res.writeHead()  设置响应头与状态码 (下面2个的综合写法)
        res.statusCode   设置状态码  (404也是设置的)
        res.setHeader()  设置响应头(“content-type”  类型)

  req:request   请求 
    常用的属性
    req.url     请求地址
    req.method  请求方式(默认是get)
    req.headers 请求头

常见的请求头中的类型
1、application/json
2、application/x-www-form-urlencode 数据序列化
key=val&key=val

    ajax({
        type:
        data:
        url:
        headers:{
            content-type:""
        },
        success:
    })
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190819174914833.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d3NjE2,size_16,color_FFFFFF,t_70)

响应头中content-type常用的类型有哪些?
1、文本类型 text/plain
2、html类型 text/html
3、css类型 text/css
4、js类型 application/x-javascript
5、json类型 application/json
6、图片类型 image/png image/jpg …

3、application/x-www-form-urlencode
form的enctype属性为编码方式:用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。 当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url。 当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary).
窗体数据被编码为名称/值对。这是标准的编码格式。
4、关于报文 相关文档读 3篇

Node路由:
    1、要求引入一个js文件 弹出1
    2、引入一个css文件  
    3、引入10张图片
    4、引入写一个选项卡

node模块:

fs

1,fs.readFile:读取文件 参数1:文件路径,参数2:是成功的回调, 回调中参数1:err,参数2:读取到的数据
fs.readFileSync(路径) 返回值是读取到的数据

写文件:
2,fs.writeFile(“文件名”,‘书写的内容’,(err)=>{
})
参数1:文件路径
参数2:书写的内容
参数3:成功的回调

url

解析url转换成功urlObject

qs(querystring)

parse参数:
    1、需要转换的字符串
    2、分隔符
    3、赋值符

stringify参数:
    1、需要转换的对象
    2、分隔符
    3、赋值符

events

//引入核心模块
const EventEmit = require(“events”);
//创建一个类 继承核心模块方法
class MyEmitter extends EventEmit {}
//实例化
const myEvent = new MyEmitter();

addListener 事件绑定
事件的触发emit

on("事件名称",事件函数)
off("事件名称",事件函数)
emit('事件名称')

http

const http = require(“http”);

let url = “http://www.mobiletrain.org/?pinzhuanbdtg=biaoti”;
node服务器与服务器之间进行数据请求的时候数据时一块一块接受的,不像浏览器一下子全部接受。,
//服务端发起了一个get请求
http.get(url,(res)=>{
let str = “”;
res.on(“data”,(data)=>{
str+=data;
})

res.on("end",()=>{
    console.log(str);
})

})

客户端,服务器 动态页面,静态页面
在这里插入图片描述
node编写服务器
在这里插入图片描述

Express框架
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

插件:
在这里插入图片描述
首页:在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
新闻详情可以传ID
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

GET,POST请求
在这里插入图片描述
标签
<%-%> :输出标签(HTML会被浏览器解析)
<%#%> :代码注释
公共样式:
引入<%- include …/public/name%>
public文件名name:公共样式的名字

for循环:
在这里插入图片描述
app.js里写的
在这里插入图片描述

Socket.io
针对node
cdnjs网站
在这里插入图片描述
httpclient
服务端代理解决跨域开发中间层
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值