IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> node.js01----node初识 -> 正文阅读

[JavaScript知识库]node.js01----node初识

  1. node.js介绍:node.js不是一门语言,也不是库或者框架,node.js是一个javascript运行时的环境;node.js可以解析和执行javascript代码;

  2. node.js和浏览器中的javascript中的不同:浏览器中的javascript是由三部分构成的:EcmaScript,DOM,BOM;
    node.js中的javascript只有Ecmascript,没有DOM和BOM,在node.js这个javascript执行环境中为javascript提供了一些服务器级别的操作API,例如:文件读写,网络服务构建,网络请求和响应等。
    node相当于在学习后台服务处理开发,只不过后台服务编程使用的是javascript语言而已;

  3. node特性:事件驱动,非阻塞I/O模型(简单说就是异步操作),轻量高效;

  4. node能够做什么:web服务器后台 命令行工具:例如,npm,git,webpack等;
    简单的命令行操作:cd dir ls mkdir rm

  5. B/S编程模型:Browser-Server,模块化编程:将不同功能的函数封装起来,并提供使用接口,他们彼此之间互不影响。

  6. 利用node搭建js环境,不通过浏览器执行js代码:
    在这里插入图片描述

  7. fs模块读写文件:
    在这里插入图片描述
    在这里插入图片描述
    fs模块写文件方法:
    在这里插入图片描述

  8. http服务:http模块的引用思路:加载http核心模块;创建一个web服务器;注册request请求事件;绑定端口号,启动服务器;

// http模块
// 1.加载http核心模块
let http = require("http");

// 2.使用http.createServer()方法创建一个wen服务器,返回一个server实例
let server = http.createServer();

// 服务器用来干什么?
// 提供服务,对数据的服务
// 发请求
// 接受请求
// 处理请求
// 给个响应

// 3.注册request请求事件
// 对应Node.js 的特性:事件驱动
server.on("request", function () {
  console.log("收到客户端的请求了啊");
});

// 4.绑定端口号,启动服务器
server.listen(3000, function () {
  console.log(
    "服务器启动成功了,可以通过浏览器访问http:localhost:3000发请求了"
  );
});

前后端交互:

// http模块
// 1.加载http核心模块
let http = require("http");
// 2.使用http.createServer()方法创建一个wen服务器,返回一个server实例
let server = http.createServer();

// 服务器用来干什么?
// 提供服务,对数据的服务
// 发请求
// 接受请求
// 处理请求
// 给个响应

// 3.注册request请求事件
// 对应Node.js 的特性:事件驱动
server.on("request", function (request, response) {
  // 处理请求
  // 给个响应
  console.log(request.url);
  response.writeHead(200, {
    "Content-Type": "text/html;charset=utf-8",
    "Access-Control-Allow-Origin": "*",
  });   //解决乱码问题

  if (request.url == "/login") {
    response.end("结束了");
  }   //判断自己输入的url,根据url服务器给出响应
});

// 4.绑定端口号,启动服务器
server.listen(3000, function () {
  console.log(
    "服务器启动成功了,可以通过浏览器访问http:localhost:3000发请求了"
  );
});
// fs结合http

// http模块
// 1.加载http核心模块
let http = require("http");
let fs = require("fs");
// 2.使用http.createServer()方法创建一个wen服务器,返回一个server实例
let server = http.createServer();

// 3.注册request请求事件
// 对应Node.js 的特性:事件驱动
server.on("request", function (request, response) {
  // 处理请求
  // 给个响应
  console.log(request.url);
  //   response.writeHead(200, {
  //     "Content-Type": "text/html;charset=utf-8",
  //     "Access-Control-Allow-Origin": "*",
  //   }); //解决乱码问题

  if (request.url == "/demo3") {
    //判断自己输入的url,根据url服务器给出响应
    fs.readFile("demo2.html", function (err, data) {
      if (err) {
        console.log(err);
      } else {
        console.log(err);
        console.log(data);
        console.log(data.toString());
        response.end(data);
      }
    });
  }
});

// 4.绑定端口号,启动服务器
server.listen(3000, function () {
  console.log(
    "服务器启动成功了,可以通过浏览器访问http:localhost:3000发请求了"
  );
});

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 前端通过ajax请求并渲染
// fs结合http

// http模块
// 1.加载http核心模块
let http = require("http");
let fs = require("fs");
// 2.使用http.createServer()方法创建一个wen服务器,返回一个server实例
let server = http.createServer();

// 3.注册request请求事件
// 对应Node.js 的特性:事件驱动
server.on("request", function (request, response) {
  // 处理请求
  // 给个响应
  console.log(request.url);
  response.writeHead(200, {
    "Content-Type": "text/html;charset=utf-8",
    "Access-Control-Allow-Origin": "*",
  }); //解决跨域问题

  if (request.url == "/demo3") {
    //判断自己输入的url,根据url服务器给出响应
    fs.readFile("demo2.html", function (err, data) {
      if (err) {
        console.log(err);
      } else {
        console.log(err);
        console.log(data);
        console.log(data.toString());
        response.end(data);
      }
    });
  } else if (request.url == "/ajax") {
    response.end("我是ajax返回值");
  }
});

// 4.绑定端口号,启动服务器
server.listen(3000, function () {
  console.log(
    "服务器启动成功了,可以通过浏览器访问http:localhost:3000发请求了"
  );
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jquery-1.11.1.min.js"></script>
</head>
<body>
    <script>
        $(function(){
            $.get('http:localhost:3000/ajax',function(res){
                console.log(res);
            })
        })
    </script>
</body>
</html>

解决乱码问题:

// fs结合http

// http模块
// 1.加载http核心模块
let http = require("http");
let fs = require("fs");
// 2.使用http.createServer()方法创建一个wen服务器,返回一个server实例
let server = http.createServer();

// 3.注册request请求事件
// 对应Node.js 的特性:事件驱动
server.on("request", function (request, response) {
  // 处理请求
  // 给个响应
  console.log(request.url);
  response.writeHead(200, {
    "Content-Type": "text/html;charset=utf-8", //乱码可以解决
    "Access-Control-Allow-Origin": "*",
  }); //解决跨域问题

  if (request.url == "/login") {
    response.setHeader("Content-Type", "text/plain;charset=uti-8");
    response.write("我是demo1");
    response.end("666");
  }
});

// 4.绑定端口号,启动服务器
server.listen(3000, function () {
  console.log(
    "服务器启动成功了,可以通过浏览器访问http:localhost:3000发请求了"
  );
});

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:27:32  更:2021-07-10 14:29:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 17:09:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码