zoukankan      html  css  js  c++  java
  • nodejs

    nodejs

    官方宣言

    Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.

    什么意思,一脸懵逼,二脸懵逼,矩阵懵逼... 各位大胸第们,四级过了没。哈哈,我又调皮了,抱歉!还记得一起补考的岁月吗?青春一去不返;还记得王者之路吗?那曾经是我的梦啊;还记得hello word吗?那时都不知道世界上有多少种代码语言。

    想当初,看今朝,大学撸游戏,工作撸代码,俗话说得好:“我不上王者,谁上王者”,还有谁? node来到这个世界已经很久了,相信大家对他也不是很陌生了,工作之余,吹吹水,写写文章,抛下代码,一身轻松。今天为大家带来的是,node 的第一视角,欢迎车震们来解说这一期的 nodejs。

    某宝推荐环节

    接下来进入广告环节

    技能介绍

    node是什么?可以说是javascript插上了翅膀,会飞的猪? No,猪之前没有飞起来,并不是说他没有这个本领,只是飞的太低,没有被大家所关注到,在javascript最初的时候,是有在服务器端使用的实例的,如网景公司的服务器端脚本代码 LiveWire ,那么从这一点出发来看,猪飞起来了并不是插上了翅膀,而是通过不断的改变将自身的能力放大化了。

    人机练习

    说了这么多,来认识一下这名英雄,nodejs。闲话不多说,进入比赛的画面。

    使用 Node 创建 Web 服务器

    Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用 http 模块,代码如下:

    var http = require('http');

    • 以下是演示一个最基本的 HTTP 服务器架构(使用8081端口),创建 server.js 文件,代码如下所示:
    var http = require('http');
    var fs = require('fs');
    var url = require('url');
    
    // 创建服务器
    http.createServer( function (request, response) {  
       // 解析请求,包括文件名
       var pathname = url.parse(request.url).pathname;
       
       // 输出请求的文件名
       console.log("Request for " + pathname + " received.");
       
       // 从文件系统中读取请求的文件内容
       fs.readFile(pathname.substr(1), function (err, data) {
          if (err) {
             console.log(err);
             // HTTP 状态码: 404 : NOT FOUND
             // Content Type: text/plain
             response.writeHead(404, {'Content-Type': 'text/html'});
          }else{	         
             // HTTP 状态码: 200 : OK
             // Content Type: text/plain
             response.writeHead(200, {'Content-Type': 'text/html'});	
             
             // 响应文件内容
             response.write(data.toString());		
          }
          //  发送响应数据
          response.end();
       });   
    }).listen(8081);
    
    // 控制台会输出以下信息
    console.log('Server running at http://127.0.0.1:8081/');
    
    
    • 接下来我们在该目录下创建一个 index.htm 文件,代码如下:
    <html>
    <head>
    <title>Sample Page</title>
    </head>
    <body>
    Hello World!
    </body>
    </html>
    
    

    执行 server.js 文件:

    $ node server.js
    Server running at http://127.0.0.1:8081/

    接着我们在浏览器中打开地址:http://127.0.0.1:8081/index.htm, 显示如下图所示:

    执行 server.js 的控制台输出信息如下:

    Server running at http://127.0.0.1:8081/
    Request for /index.htm received. # 客户端请求信息

    nodejs连接MongoDB

    • 在MongoDB中插入数据,以下实例我们在blood表中插入数据
    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://localhost:27017/rambo'; # 数据库为 rambo
     
    var insertData = function(db, callback) {  
        //连接到表 site
        var collection = db.collection('blood');
        //插入数据
        var data = [{"name":"德莱联盟","url":"www.rambo.com"},{"name":"武器大师","url":"c.rambo.com"}];
        collection.insert(data, function(err, result) { 
            if(err)
            {
                console.log('Error:'+ err);
                return;
            }     
            callback(result);
        });
    }
     
    MongoClient.connect(DB_CONN_STR, function(err, db) {
        console.log("连接成功!");
        insertData(db, function(result) {
            console.log(result);
            db.close();
        });
    });
    
    

    执行以下命令:

    $ node test.js
    连接成功!
    { result: { ok: 1, n: 2 },
      ops: 
       [ { name: '德莱联盟',
           url: 'www.rambo.com',
           _id: 58c25e13a08de70d3b9d4116 },
         { name: '武器大师',
           url: 'c.rambo.com',
           _id: 58c25e13a08de70d3b9d4117 } ],
      insertedCount: 2,
      insertedIds: [ 58c25e13a08de70d3b9d4116, 58c25e13a08de70d3b9d4117 ] }
    

    从输出结果来看,数据已插入成功。
    我们也可以打开 MongoDB 的客户端查看数据,如:

    show dbs
    admin 0.000GB
    local 0.000GB
    rambo 0.000GB # 自动创建了 rambo 数据库
    show tables
    blood # 自动创建了 blood 集合(数据表)
    db.site.find() # 查看集合中的数据
    { "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "德莱联盟", "url" : "www.rambo.com" }
    { "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "武器大师", "url" : "c.rambo.com" }

    总结

    从上面的demo来看,nodejs是真正意义上将js实现了运用在后台,这大大方便了前端程序猿对于后台的认识以及进一步的控制,这也意味着js一种语言实现前后端,高大上,真是粪坑旁边打地铺,离屎不远了。哈哈哈,开玩笑了,好的各位观众朋友们这一期的视频到此结束,我们下期再见。

    异乡小龟
  • 相关阅读:
    html 知识
    mysql use mysql hang
    微信机器人 简化版
    Tk::Table
    好友消息和群消息区别
    完整的微信登陆 接收消息流程
    Python OOP知识积累
    Python OOP知识积累
    JSTL EL 详解
    JSP中的EL表达式详细介绍
  • 原文地址:https://www.cnblogs.com/scale/p/6636101.html
Copyright © 2011-2022 走看看