node.js基本概念

1、动态网页 和 静态网页
动态网页:数据可以进行交互 动态改变数据
 
2、node
node是基于chrome的V8引擎的Javscript运行环境 
node中的npm 是全球最大的包管理器 (全球最大的垃圾网站)
node中的事件机制以及非阻塞式的I/O式模型 使其轻量又高效
I:input
o:output
 
3、v8引擎:
浏览器内核
引擎
渲染引擎
脚本引擎
 
4、node中是没有DOM 和BOM的概念的
 
5、node的版本
LTS 稳定版本:
10.15.2(10是大版本号,15是小版本号,2是补丁)
 
6、nodeJS和 浏览器中的JAVAscript 有什么不同?
①在node中没有DOM和BOM的概念 因此不会涉及到兼容
②node中的global process这些属性都是浏览器没有的
③node可以用来搭建服务器,数据库
④node可以用来调用底层的API 可以做文件的读写等操作
7、node优点
优点:高效 速度快 适合做高并发的项目
缺点:不适合做大量计算的项目
8、node的交互模式
node 回车进入交互模式
退出:
ctrl+c 2次
或者 ctrl+d 一次
9、node如何运行js文件
  node.js文件名
10、模块化
requireJs     seaJS       CommonJS      ES6 module
   异步           异步             同步                  同步
AMD            CMD           common             import
模块化规范?
如何导出模块 如何接收模块:
define定义  return导出   require接收(requireJs )
 
module.exports 导出   require 导入(commonJS)
 

export default 导出    import 导入 (ES6 module)

 

11、node中的模块分为以下三种
①核心模块
②自定义模块
③第三方模块
12、(注意:<>不需要写)
npm
cnpm install package.json依赖安装

cnpm install <包名> -g 全局安装

cnpm install <包名> --save-dev 局部安装 cnpm i <包名> -S

cnpm uninstall <包名> 卸载

cnpm update <包名> 更新

cnpm clear cache 清除缓存

13、
①npm init 创建node的包 保证包名全网唯一
②npm login
③npm publish 上传  上传到npm官网
14、yarn
①缓存
②异步

cnpm install jquery qs url -S(加载jquery qs url为同步:按顺序执行)

yarn add jquery qs url(加载jquery qs url为异步:同时分开执行)
 
cnpm install yarn -g   全局安装

yarn install === cnpm install   package.json依赖安装

yarn add <包名> === cnpm install <包名> -S 局部安装

yarn add <包名> --dev == cnpm install <包名> --save-dev 局部安装

yarn upgrade <包名> 更新

yarn remove <包名> 删除

//引入http模块  node的核心模块
const http = require("http");

/*
    //商场
   const server =  http.createServer()  创建服务器

    //端口号
    server.listen(9000)



    用户说:"商店里面有没有澡巾"
    url:"http://ww.baidu.com/data"

    人民币
    get post

    要绿色  多大号的
    headers:{
        "content-type":"application/json"{name:val,pass:val}
                      "application/x-www-form-urlencoded"  表单序列化
                        name=val&pass=val

                        "{'name':'zhangsan','age':19}"
    }





    回复
        res.end() + res.write  最后的回复
        res.write();   响应

        content-tyepe

*/

http.createServer((req,res)=>{ console.log(req.headers) /* req:request req.url 请求的地址 req.method 请求的方式 req.headers 请求头 req.body 接收post传递的参数 req.query 接收get传递过来的参数 req.request() 接收任意方式传递过来的数据 res:response res.write() 回复响应信息 可以调用很多次 res.end() 回复响应信息 做结尾 只能调用一次 res.statusCode 设置状态码 res.setheader() 设置响应头 res.writeHead(); statusCode 与setHeader的综合写法 第一次参数是状态码 第二次参数是响应头的类型 */ //res.statusCode = 200; //res.setHeader("content-type","text/plain"); res.writeHead(200,{"content-type":"text/plain;charset=utf8"}); res.write("1111"); res.write("2222"); res.end("你好"); }).listen(9000) //提示信息 console.log("http://localhost:9000") /* 响应头的类型有哪些? text/plain 文本类型 text/html html类型 text/css css类型 application/x-javascript js类型 application/json json类型 application/xml xml类型 image/png jpg gif */

小案例:

moduleA.js

const moduleA = require("./moduleB");
const cheerio = require("cheerio");

console.log(moduleA._name);
console.log(moduleA.fn("哈哈"))

moduleB.js

let _name = "张三";
let fn = (name)=>{
    console.log(name);
}


module.exports = {
    _name,
    fn
}
原文地址:https://www.cnblogs.com/cqdd/p/10481098.html