• Node.js


    一、初始

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
    Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 
    Node.js 的包管理器 npm,是全球最大的开源库生态系统
    
    虽然名字很土,但是,Node第一次把JavaScript带入到后端服务器开发,加上世界上已经有无数的JavaScript开发人员,所以Node一下子就火了起来。
    
    其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求。  

     补充:

    python: 自己创建服务

    php:apache

    java: tomcat

    node.js:express(基于node.js平台的web应用框架,灵活方便,能够快速创造出服务端应用程序,安装命令 npm install express --save-dev)

    二、安装

    1.node.js的特性

    1)非阻塞IO模型
    2)时间驱动  

    2.运用场景

    - 高并发低业务
    
    - 实时场景
    
    - 聊天、电子商务、视频直播
    

    3.安装操作

    http://nodejs.cn/
    判断是否安装成功  node -v
    进入编辑状态:node+回车,可以进行一些运算
    退出编辑模式:ctrl+d或者ctrl+c两次
    

    4.npm的具体操作(包管理器,也是一个命令)  

    首先进行项目初始化,命令为npm init(快速初始化的命令是npm init -y) ,会自动生成package.json文件

    npm install 包的名字 --save-dev
    npm install express --save-dev:吧依赖包增加到开发环境下
    
    npm install express
    npm install express --save :把依赖包增加到运行环境下 

    三、使用

     模板化开发

    a.js

    var man = 123
    module.exports = man;
    

    b.js

    require("./a.js"); 

    执行文件时的命令 node +文件名 (即node.b.js)

    四、测试(用node.js做一个登陆页面) 

    login.html

    <!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">
        <title>Title</title>
        <script src="jquery.js"></script>
        <style>
            span{
                color: red;
            }
        </style>
    </head>
    <body>
    <div>
        <form action="" method="post">
            <p>用户名:<input type="text" placeholder="username" id="username"></p>
            <p>密码:<input type="password" placeholder="password" id="password"></p>
            <input type="submit" value="提交" onclick="login()">
            <span></span>
        </form>
    </div>
    <script>
        function login() {
            var username = $("#username").val();
            var password = $("#password").val();
            var url = "http://localhost:8080/login";
            console.log(username,password);
            $.post(url, {username,password}, function (response) {
                console.log(response);
                if (response){
                    $("span").html("登陆成功")
                }else{
                    $("span").html("登录失败")
                }
    
            })
    
        }
    
    </script>
    </body>
    </html>
    server.js
    var express = require("express"); //引用包
    var query = require("querystring");
    
    var app = express();  //初始化
    app.listen("8080",function () {  //监听
        console.log("服务已经启动,端口是8080")
    });
    
    var data2="";
    app.post(
      '/login',
      function (request,response) {
          response.header("Access-Control-Allow-Origin", "*");
          request.on("data",function (datas) {   //接收用户发来的数据,里面的data是不变的,就得叫data
              data2 = "";
              // console.log(datas)  ; //<Buffer 75 73 65 72 6e 61 6d 65 3d 26 70 61 73 73 77 6f 72 64 3d
                                    // >这样打印的结果是Buffer 类型的,所以我们得拼接一下,用querystring这个模块转成字符串
              data2+=datas;
          });
          request.on("end",function () {  //接收用户发来的数据之后开始解析
              console.log(query.parse(data2));  //{ username: 'root', password: '123' }
              var username = query.parse(data2).username;
              var password = query.parse(data2).password;
              if (username == "root" && password == "123"){
                  response.send(true)//如果登录成功就把数据返回给前端
              }else{
                  response.send(false)
              }
          })
    
      }
    );
    
    
  • 相关阅读:
    configure: error: invalid variable name: `'
    [bzoj2002][Hnoi2010]Bounce弹飞绵羊——分块
    [bzoj2049][Sdoi2008]Cave 洞穴勘测——lct
    [bzoj4765]普通计算姬——分块
    [bzoj4766]文艺计算姬——完全二分图生成树个数
    [bzoj2243][SDOI2011]染色——树链剖分+线段树
    [bzoj3306]树——树上倍增+dfs序+线段树
    [bzoj1977][BeiJing2010组队]次小生成树 Tree——树上倍增+lca
    [bzoj3697]采药人的路径——点分治
    小蒟蒻的天坑
  • 原文地址:https://www.cnblogs.com/moning/p/8376975.html
Copyright © 2020-2023  润新知