一、初始

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)
          }
      })

  }
);

posted on 2018-01-29 14:51  Sober--  阅读(141)  评论(0编辑  收藏  举报