Node.js与ES632_Node.js入门

一、什么是Node.js

 简单的说Node.js就是运行在服务端的JavaScript。

 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。

 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快, 性能非常好。

二、Node.js安装

 1、下载对应你系统的Node.js版本:

  https://nodejs.org/en/download/

   

 2、选择安装目录进行安装

  推荐下载LTS版本。

  完成以后,在控制台输入命令,会显示当前node的版本号

   

三、快速入门

 1、创建测试工程:nodejs

    

 2、控制台输出

  创建demo1.js文件

var a=1;
var b=2;
console.log(a+b);

  在idea的Terminal中输入node demo1.js,查看结果:

   

   说明nodejs是可以解析js的,因为nodejs是基于v8引擎来进行解析。

 3、使用函数

  创建demo2.js

var c= add(100,200);
console.log(c);
function add(a,b) {
    return a+b;
}

  Terminal中输入node demo2.js,查看结果:

   

 4、模块化编程

  每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

  创建demo3_1.js

   可以使用exports将js方法导出

exports.add=function(a,b){
    return a+b;
} 

  每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

  创建demo3_2.js 

   使用require引入对应的js模块,然后在引入之后可以使用对应的方法。

//引入模块demo3_1
var
demo = require('./demo3_1'); console.log(demo.add(400,600));

  Terminal中输入命令:node demo3_2.js,查看结果:

   

 5、创建web服务器

 创建demo4.js

//http是内置模块
var http = require('http');
http.createServer(function (request, response) {
    // 发送 HTTP 头部
    // 参数1:响应状态码,200表示成功
    // 参数2:响应头部信息,内容类型: 纯文本
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 发送响应数据
    response.end('Hello World\n');
 }).listen(8888);
// 终端打印如下信息
console.log('服务器运行在http://127.0.0.1:8888');

  Terminal中输入命令 node demo4.js ,结果如下:

   

  此时表示服务已经启动,我们打开浏览器,输入网址,浏览器显示

   

 6、理解服务端渲染

  我们创建demo5.js ,将上边的例子写成循环的形式

var http = require('http');
http.createServer(function (request, response) {
    // 发送 HTTP 头部
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 发送响应数据 "Hello World"
   for(var i=0;i<10;i++){
        response.write('Hello World\n');
    }
    response.end('');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

  Terminal中输入命令node demo5.js ,在浏览器测试结果

   

  我们右键“查看源代码”

   

  这里我们发现,并没有我们写的for循环语句,而是直接的10条Hello World ,这就说明这个循环是在服务端完成的,而非浏览器(客户端)来完成。这与我们原来的JSP很是相似。实际中这些数据有可能由node直接读取数据库,或是通过ajax访问其它网络资源获取。

 7、接收参数

  目标:引入http和url模块创建web容器并使用url解析请求路径中参数且输出

  需求:http://127.0.0.1:8888?id=123&name=heima获取到请求路径中参数及值并输出

  步骤:

    1. 创建web服务器

    2. 引入url模块

    3. 利用url解析请求地址只能怪的参数和值并输出

    4. 启动测试

  创建demo6.js 

//引入node.js内置http模块
var http = require("http");
//引入内置url模块
var url = require("url");

//创建并监听web服务器
http.createServer(function (request, response) {
    
    response.writeHead(200,{"Content-Type":"text/plain"});

    //解析请求地址
    //参数1:请求地址
    //参数2:true的话使用query解析参数到一个对象,默认false
    var params = url.parse(request.url,true).query;
    for(var key in params){
        response.write(key+"="+params[key]);
        response.write("\n");
    }
    //发送响应数据
    response.end("");
}).listen(8888);
console.log("服务器运行在http://127.0.0.1:8888");

  Terminal中输入命令nodedemo6.js ,浏览器访问http://127.0.0.1:8888/?id=123&name=heima,查看结果:

   

 

   

 

 

posted on 2024-06-24 13:24  花溪月影  阅读(8)  评论(0编辑  收藏  举报