node.js 订阅
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 [1]  Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 [2]  发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 展开全文
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 [1]  Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 [2]  发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
信息
最新版本
13.9.0
类    别
运行于服务端的JavaScript解释器
开发者
Ryan Dahl
更新时间
2020-02-25
中文名
node.js
外文名
Node
发布时间
2009年5月
node.js发展史
收起全文
精华内容
参与话题
问答
  • node.js nodejs-websocket客服系统

    千次阅读 2019-06-16 16:34:21
    功能说明 :访问端不限制打开网页数,客服端选中访问端token可以直接发送信息。 访问离线,有提示。 代码不是很完善:如果不能对话,多试试。 客服 <html> <head> <.../h1...

    功能说明 :访问端不限制打开网页数,客服端选中访问端token可以直接发送信息。
    访问离线,有提示。
    代码不是很完善:如果不能对话,多试试。
    客服

    <html>
       <head>
       <title>客服系统</title>
       </head>
       <body>
         <h1>客服系统-客服</h1>
        <input type="text" id="snedTxt" value="在的" />
        <button id="sendb">发送</button>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style type="text/css">
        span{ margin: 10px}
        </style>
        <div class="vip"></div>
        <div id="recv"></div>
          <script src="jquery.min.js"></script>
          <script src="jq.cookie.js"></script>
    
          <script type="text/javascript">
          var guest='kefu';
          var ws = new WebSocket("ws://localhost:3000/");// 设置服务器地址 //
          ws.onopen=function(){  // onopen 连接触发 //
              console.log("连接");
              document.getElementById("recv").innerHTML="已连接"; //  innerHTML 可以 获取 也可以 插入  /
          }
          ws.onclose=function(){ // onclose 断开触发 //
             console.log("连接关闭");
          }
          ws.onmessage =function(e){ // onmessage 接收到信息触发  //
            //$.cookie('th-ws-user','',{expires:7});
            console.log(e.data);
            var obj=JSON.parse(e.data);
            var name=obj.name;
            //alert(name);
            var str=$.cookie('th-ws-user');
            //alert(user);
            //console.log(user);
            if(!str){
              console.log(1);
              user=[];
              user.push(name);
            }else{
              console.log(2);
              user=str.split(",");
              if(str.indexOf(name)==-1){
                  //alert(name);
                  user.push(name);
              }
            }
            str = user.join(',');
            $.cookie('th-ws-user',str,{expires:7});       
    
    
            console.log(user);
            $(".vip").html('');
            $.each(user,function(i,n){
                //alert(n);
                $("<span>").html(n).appendTo($(".vip")).click(function(){
                  guest=n;
                });
            });
    
            document.getElementById("recv").innerHTML = obj.content;
          }
          document.getElementById("sendb").onclick=function(){ // 监测 id=“sendb”的 按钮 触发 onclick 就会发送数据 send //
            var txt = document.getElementById("snedTxt").value;
            var obj={name:'kefu',content:txt,guest:guest};
            var txt=JSON.stringify(obj);
            ws.send(txt);
          }
          </script>
       </body>
    </html>
    

    访问:

    <html>
       <head>
       <title>客服系统</title>
       </head>
       <body>
         <h1>客服系统-客户</h1>
        <input type="text" id="snedTxt" value="在吗?" />
        <button id="sendb">发送</button>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <div id="recv"></div>
          <script src="jquery.min.js"></script>
          <script src="jq.cookie.js"></script>
          <script type="text/javascript">
          // $(function(){
    
            var name=$.cookie('th-ws-name');
            //alert(name);
            if(name=="undefined"){
              name=get_random(32);
              $.cookie('th-ws-name',name,{expires:7});
              name=$.cookie('th-ws-name');
            }
            //alert(name);
            //return false;
            var ws = new WebSocket("ws://localhost:3000/");// 设置服务器地址 //
            ws.onopen=function(){  // onopen 连接触发 //
                console.log("连接");
                document.getElementById("recv").innerHTML="已连接"; //  innerHTML 可以 获取 也可以 插入  /
            }
            ws.onclose=function(){ // onclose 断开触发 //
               console.log("连接关闭");
            }
            ws.onmessage =function(e){ // onmessage 接收到信息触发  //
              console.log(e.data);
              document.getElementById("recv").innerHTML = e.data;
            }
            document.getElementById("sendb").onclick=function(){ // 监测 id=“sendb”的 按钮 触发 onclick 就会发送数据 send //
              var txt = document.getElementById("snedTxt").value;
              var obj={name:name,content:txt};
              var str=JSON.stringify(obj);        
              ws.send(str);
            }
    
            window.onunload = function(){
              var obj={name:name,content:'关闭'};
              var str=JSON.stringify(obj);        
              ws.send(str);
            }
    
            function get_random(length) {
              var chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
              var result = '';
              for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
              return result;
            }
    
          //});
          </script>
    
       </body>
    </html>
    

    node.js

    var ws = require('nodejs-websocket');
    var port=3000
    var user=[];
    var server = ws.createServer(function(conn){
        //受到连接触发//
    //在服务端cmd安装npm install nodejs-websocket//
        console.log('连接成功');
        conn.on("text",function(str){
            // 收到信息触发     接收 //
            var obj=JSON.parse(str);
            var txt=obj.content;
            var name=obj.name;
            console.log("收到信息:"+obj.content);
            console.log("用户:"+obj.name);
            boardcast(txt,name,str) // 广播消息 //
            conn.sendText(str) // 发送数据给自己 //
            conn.name=obj.name;
            var off=false;
    
            user.forEach(function(item){
                 if(item.name==obj.name){
                     off=true;
                 }
            })
            if(off==false){
                user.push(conn);
            }
            
    
        })
        conn.on("close",function(code,reason){
            // 断开连接触发 //
            console.log("连接关闭");
        })
        conn.on("error",function(err){
            // 出错触发 //
            console.log("连接出错")
            console.log(err)
        })
        function boardcast(txt,name,str){  // 广播 //
        // server.connections  保存每个连接进来的用户 //
            console.log("BOAR:"+str);
            var obj=JSON.parse(str);
            console.log("S----------------");
            user.forEach(function(item){
                if(name=='kefu'){//客服发的信息
                    console.log("T-F:"+item.name+"   VS  "+obj.guest);
                    if(item.name==obj.guest){
                        item.sendText(str);
                        console.log("客户收:"+name);
                    }
                }else{//客户发的信息
                   console.log("T-H:"+item.name);
                    if(item.name=='kefu'){
                        item.sendText(str)
                        console.log("客服收:"+name);
                    }
                }
            })
    
            console.log("E------------------"); 
            console.log(user.length);
            server.connections.forEach(function(conn){   //  .forEach 是调用数组里每个元素  //
                var item=conn.frameBuffer;
                console.log(server.connections.length);
                //if(conn.frameBuffer.name==null){
                    //conn.sendText(str)
                //}
    
            })
        }
    }).listen(port)
    console.log("^^^^^")
    

    www.755cn.com 原创

    展开全文
  • Node.js 是什么?Node.js与JavaScript的区别是什么?

    万次阅读 多人点赞 2019-06-06 23:37:49
    node.js是什么?Node.js是一个Javascript运行环境(runtime)。Node.js与JavaScript的区别是什么?本质:     Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行  &...

    node.js是什么?Node.js是一个Javascript运行环境(runtime)。Node.js与JavaScript的区别是什么?本质:     Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行     Node.js是一个可以快速构建网络服务及应用的平台,是用Javascript语言构建的服务平台,可用于后端建立服务器区别:      Javascript 主要应用前端    是编程语言    客户端编程语言(需要浏览器的javascript解释器进行解释执行)        node.js    主要应用后端      1个平台        运行环境(一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境)简单的说node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。
    Node.js的优点?Node.js的缺点?
     优点:1.事件驱动2.异步编程3.非阻塞模式的IO4.轻量高效缺点:1.可靠性低2.单进程,单线程,只支持单核cpu,不能充分的利用多核cpu服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。Node.js适用场景?Node.js不适用的场景?
    适用场景:1.JSON APIL ——构建一个Rest/JSON API服务,node.js可以充分发挥其非堵塞IO模型以及javascript对JSON的功能支持2.单页面、多Ajax请求应用——前端有大量的异步请求,需要服务器后端有极高的响应速度3.基于node.js开发Unix命令行工具——node.js可以大量产生子进程,并以流的方式输出4.流式数据——传统的web应用,通常会将HTTP 请求喝响应看成是原子事件。而node.js会充分利用流式数据这个特点,构建非常酷的应用不适用场景:cpu使用率较重、io使用率较轻的应用Node.js的基本语法
    基本语法与 javascript 一样这里我们使用exports导出一个函数,然后再另一文件中通过require导入入一个模块例如 :在 a.js 中写一个函数var hello=function(){    console.log(‘hello’)}export.hello=hello;在 b.js 中 需要用hello这个函数var a=require(‘a’);a.hello()单线程
    Node的设计中就是将耗时长的操作代理给操作系统或者多线程,这部分操作就是磁盘I/O和网络I/O。所以Node中异步非常常见,因为要将耗时的操作从主线程上脱离。但是这些I/O线程并不怎么耗费CPU。无法利用多核CPU是指Node的主线程无法利用上硬件上额外的CPU。这就需要用到cluster来在机器上启动多个Node实例,将额外的CPU也使用上。异步 IO
    事件驱动REPLREPL(Read-Eval-Print Loop) 中文的话有翻译成“交互式解释器”或“交互式编程环境”的。

    作者:cici_Gao
    链接:https://www.jianshu.com/p/21d3130ca059
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • 全面学习vue.js配置,es6命令,解构赋值,symbol类型,set,weakSet,Map,WeakMap,Iterator遍历器,Generator函数结构,Promise对象,async函数,箭头函数,class类,proxy代理,Decorator修饰器,model模块,二进制...
  • // nodejs+express+jwt-simple let jwt = require('jwt-simple'); //秘钥 let secret = "laney"; let time = 10; let tokenExpiresTime = 1000 * 60 * 60 * 24 * 7; //token过期时间,毫秒为单位, 7天 module....
    // nodejs+express+jwt-simple
    
    let jwt = require('jwt-simple');
    //秘钥
    let secret = "laney";
    let time = 10;
    let tokenExpiresTime = 1000 * 60 * 60 * 24 * 7; //token过期时间,毫秒为单位, 7天
    module.exports = {
      /*
       *检验token合法性
       */
      validate: function (req, res, next) {
        let token = req.headers.token;
        if (token) {
          let decodeToken = null;
          try {
            //防止假冒token解析報錯 
            // decodeToken = jwt.decode(token,secret,'HS256'); 
            decodeToken = jwt.decode(token, secret); //解密
          } catch (err) {
            res.status(401).send("非法访问");
            return;
          }
          let exp = decodeToken.exp;
          if (!exp) {
            res.status(401).send("非法访问");
          }
          // time*60*1000   = > 10分钟
          if (exp < (Date.now() + time * 60 * 1000)) {
            res.send({
              code: '002',
              "errorMsg": "授权超时"
            })
          }
          next();
        } else {
          res.status(401).send("非法访问");
        }
      },
      /* 生成token*/
      makeToken(username) {
        let Token = null;
        //需要加密的对象
        let payload = {
          user: username,
          time: new Date().getTime(),
          exp: Date.now() + tokenExpiresTime
        };
        Token = jwt.encode(payload, secret); //加密
        return Token;
      }
    }
    // jwt 编码解码方法
    // jwt_encode(payload, key, algorithm, options)
    // jwt_decode(token, key, noVerify, algorithm)
    
    展开全文
  • Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个。和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目。一路走来,Nodejs已经成为我做...

    前言

    用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个。和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目。一路走来,Nodejs已经成为我做Web项目的标配。我非常愿意把原Java、PHP的 Web系统向Nodejs迁移,因为1个人可以很容易的完成10个人的活了。

    本文把我的学习和使用经验进行归纳总结,希望给新入门Nodejs的同学做一些指引。

    目录

    1. Nodejs的介绍
    2. 15个Nodejs应用场景
    3. Nodejs学习路线图

    1. Nodejs的介绍

    Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效,可以完美地处理时时数据,运行在不同的设备上。

    1.1. 谁在用Nodejs?

    从Nodejs官方网站的企业登记页(https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node),包括我们熟知的公司有LinkedIn, Yahoo, Paypal, eBay, Walmart,Groupon 还有很多的中小型公司,国内的公司如雪球、淘宝、网易、百度等也都有很多项目运行在Node.js之上。

    Nodejs学习路线图

    这些公司不仅是尝试在用,而且都在向Nodejs迁移。截止到2014年6月本文发稿时,已经有79693包在npm.org上面发布,而且这个数字还在快速增长中。

    那么接下来,大家肯定都会问为什么要是用Nodejs呢?

    1.2. 为什么要用Nodejs?

    从我使用体会来说,Node有4大优势:

    • 1. Nodejs基于Javascript语言,不用再单独新学一门陌生的语言,从而减低了学习的门槛。同时,Javascript语言在Web前端开发中至 关重要,特别HTML5的应用必须要使用,所以前后台统一语言,不仅可以实现程序员的全栈开发,还可以统一公共类库,代码标准化。单凭这一 点,Nodejs就已经赢得市场的青睐了。
    • 2. Nodejs并没有重新开发运行时环境,而是选择了目前最快的浏览器内核V8做为执行引擎,保证了Nodejs的性能和稳定性。
    • 3. Nodejs的开发非常高效,而且代码简单,得意于Nodejs的单线程机制。而Nodejs的另一个特点异步编程,让Nodejs处理IO密集型应用有了明显的优势。个人感觉,用Nodejs比Java做Web开发要高效10倍,比PHP的代码还要简单。
    • 4. Nodejs的社区在壮大,不仅包的数量在快速增加,而且包的质量也要明显好于其他语言的。很多明星级的包,都是简单而灵巧的,为了开发者的使用习惯而设 计。我最常用到的工具包,如socket.io, moment.js, underscore.js, async.js, express.js, bower.js, grunt.js, forever.js…,确实在改变我以前的编程习惯。

    当然,除了我使用Nodejs的理由,很多公司也都有自己的使用理由。

    ebay选择Nodejs的理由,可以归纳为以下4点:

    • 动态语言:开发效率非常高,并有能力构建复杂系统,如ql.io。
    • 性能和I/O负载:Nodejs非常好的解决了IO密集的问题,通过异步IO来实现。
    • 连接的内存开销:每个Node.js进程可以支持超过12万活跃的连接,每个连接消耗大约2K的内存。
    • 操作性:实现了Nodejs对于内存堆栈的监控系统。

    1.3. Nodejs不适合的领域

    每一种语言或平台都有不擅长领域,对于Nodejs来说最不擅长的领域在于CPU和内存的编程操作。

    • 1. 计算密集型应用,让Javascript和C去拼计算性能,估计是不可能赢的。
    • 2. 内存控制,让Javascript和Java比较复杂数据类型定义,也是很困难的。因为Javascript的面向对象是基于JSON的,而Java是直接使用内存结构。所以,通过JSON序列化和反序列的过程控制内存,Javascript就已经输了。
    • 3. 大内存的应用,由于V8引擎有内存设计的限制,32位环境中最大堆是1G,64位环境中最大堆也不到2G,如果要一次读入10G数据,对于Nodejs来说也无法实现。
    • 4. 静态服务器,虽然Nodejs的优势在IO密集集应用,但是和Nginx的处理静态资源还是有很大的差距。
    • 5. 不需要异步的应用:比如系统管理,自行化脚本等,还是Python更顺手,Nodejs的异步调用可能会给编程带来一些麻烦。

    2. 15个Nodejs应用场景

    我们已经对Nodejs有了初步的了解,接下来看看Nodejs的应用场景。

    2.1 Web开发:Express + EJS + Mongoose/MySQL

    express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能。

    ejs是一个嵌入的Javascript模板引擎,通过编译生成HTML的代码。

    mongoose 是MongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。

    mysql 是连接MySQL数据库的通信API,可以进行访问MySQL的操作。

    通常用Nodejs做Web开发,需要3个框架配合使用,就像Java中的SSH。

    Nodejs学习路线图

    2.2 REST开发:Restify

    restify 是一个基于Nodejs的REST应用框架,支持服务器端和客户端。restify比起express更专注于REST服务,去掉了express中的template, render等功能,同时强化了REST协议使用,版本化支持,HTTP的异常处理。

    Nodejs学习路线图

    2.3 Web聊天室(IM):Express + Socket.io

    socket.io一个是基于Nodejs架构体系的,支持websocket的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现。

    Nodejs学习路线图

    2.4 Web爬虫:Cheerio/Request

    cheerio 是一个为服务器特别定制的,快速、灵活、封装jQuery核心功能工具包。Cheerio包括了 jQuery核心的子集,从jQuery库中去除了所有DOM不一致性和浏览器不兼容的部分,揭示了它真正优雅的API。Cheerio工作在一个非常简 单,一致的DOM模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示Cheerio大约比JSDOM快八倍(8x)。 Cheerio封装了@FB55兼容的htmlparser,几乎能够解析任何的 HTML 和 XML document。

    Nodejs学习路线图

    2.5 Web博客:Hexo

    Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。

    发布时,Hexo可以部署在自己的Node服务器上面,也可以部署github上面。对于个人用户来说,部署在github上好处颇多,不仅可以省 去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,基于github的个人站点,正在开始流行起来….

    Nodejs学习路线图

    2.6 Web论坛: nodeclub

    Node Club 是用 Node.js 和 MongoDB 开发的新型社区软件,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode 得到应用,但你完全可以用它搭建自己的社区。

    Nodejs学习路线图

    2.7 Web幻灯片:Cleaver

    Cleaver 可以生成基于Markdown的演示文稿。如果你已经有了一个Markdown的文档,30秒就可以制作成幻灯片。Cleaver是为Hacker准备的工具。

    Nodejs学习路线图

    2.8 前端包管理平台: bower.js

    Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系。

    Nodejs学习路线图

    2.9 OAuth认证:Passport

    Passport项 目是一个基于Nodejs的认证中间件。Passport目的只是为了“登陆认证”,因此,代码干净,易维护,可以方便地集成到其他的应用中。Web应用 一般有2种登陆认证的形式:用户名和密码认证登陆,OAuth认证登陆。Passport可以根据应用程序的特点,配置不同的认证机制。本文将介绍,用户 名和密码的认证登陆。

    Nodejs学习路线图

    2.10 定时任务工具: later

    Later 是一个基于Nodejs的工具库,用最简单的方式执行定时任务。Later可以运行在Node和浏览器中。

    Nodejs学习路线图

    2.11 浏览器环境工具: browserify

    Browserify 的出现可以让Nodejs模块跑在浏览器中,用require()的语法格式来组织前端的代码,加载npm的模块。在浏览器中,调用browserify编译后的代码,同样写在<script>标签中。

    用 Browserify 的操作,分为3个步骤。1. 写node程序或者模块, 2. 用Browserify 预编译成 bundle.js, 3. 在HTML页面中加载bundle.js。

    Nodejs学习路线图

    2.12 命令行编程工具:Commander

    commander 是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能。commander源自一个同名的Ruby项目。commander的特性:自 记录代码,自动生成帮助,合并短参数(“ABC”==“-A-B-C”),默认选项,强制选项​​,命令解析,提示符。

    Nodejs学习路线图

    2.13 Web控制台工具: tty.js

    tty.js 是一个支持在浏览器中运行的命令行窗口,基于node.js平台,依赖socket.io库,通过websocket与Linux系统通信。特性:支持多 tab窗口模型; 支持vim,mc,irssi,vifm语法; 支持xterm鼠标事件; 支持265色显示; 支持session。

    Nodejs学习路线图

    2.14 客户端应用工具: node-webwit

    Node-Webkit 是NodeJS与WebKit技术的融合,提供一个跨Windows、Linux平台的客户端应用开发的底层框架,利用流行的Web技术 (Node.JS,JavaScript,HTML5)来编写应用程序的平台。应用程序开发人员可以轻松的利用Web技术来实现各种应用程序。Node- Webkit性能和特色已经让它成为当今世界领先的Web技术应用程序平台。

    Nodejs学习路线图

    2.15 操作系统: node-os

    NodeOS 是采用NodeJS开发的一款友好的操作系统,该操作系统是完全建立在Linux内核之上的,并且采用shell和NPM进行包管理,采用NodeJS不 仅可以很好地进行包管理,还可以很好的管理脚本、接口等。目前,Docker和Vagrant都是采用NodeOS的首个版本进行构建的。

    Nodejs学习路线图

    3. Nodejs学习路线图

    我们看到Nodejs已经被广发地应用在各种的场景了,针对Nodejs的应用场景,我们应该如何学习Nodejs呢?

    以下内容是我整理的文档和教程,每个软件包对应一篇文章,大家可以根据自己的需要进行阅读,完整的文章列表,可以查看:从零开始nodejs系列文章

    Nodejs在快速的发展着,软件包版本升级的很快,文章有运行不通的地方请参考官方文档解决。我也会不定期更新文章,尽量保持文章代码的可用性。

    祝大家在Nodejs的世界里,享受开发的乐趣!

    转载请注明出处:
    http://blog.fens.me/nodejs-roadmap/

    展开全文
  • (node.js)nodejs koa ctx=> 报错

    千次阅读 2017-09-24 23:14:55
    以前开发的时候,一直使用的是express()框架进行开发,最近老是看到koa框架,貌似很...(node.js)nodejs koa ctx=> 报错 at exports.runInThisContext (vm.js:69:16) at Module._compile (module.js:432:25) at Ob
  • Node.js比Java更快?为什么NodeJS这么快
  • 本课程主要介绍了Node.js的基本情况,以及如何安装Node.js、与Nginx集成,以及开发一个比较复杂的Http服务器的方法。
  • Node.js的卸载

    万次阅读 多人点赞 2019-06-21 09:17:02
    VUE项目使用iView组件在控制面板-...确保node.js没有在后台运行的情况下,进行卸载,可做重启操作后,在到控制面板中找到node.js进行卸载 卸载后 到文件夹中进行进一步的删除 C:\Program Files (x86)\Nodejs C:\Pr...
  • 现在Node这么火,为什么不用他写个爬虫呢。 那么,开始吧! 技术: puppeteer : 由Google团队开发,该工具可以理解成我们日常使用的Chrome的无界面版本以及对其...Egg.js: 由阿里团队开发,其宗旨是:为企业级框...
  • 解压到到一个你通常习惯的盘中比喻c盘 解压可命名为nodejs修改名称为nodejs第三步:配置环境变量 找到原有的path添加nodejs文件路径比喻我的路径为配置在配置nodejs文件加下面的node_modules文件夹路径 一定要注意...
  • Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

    万次阅读 多人点赞 2016-01-17 18:07:43
    最近想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序,所以需要在本地搭建Node.js Web的开发测试环境。Node.js是什么?我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑...
  • Node.js开发入门—notepad++ for Node.js

    万次阅读 2015-09-12 07:37:35
    使用notepad++作为Node.js(MEAN)的代码编辑器,配置自动完成、运行项目等功能。
  • node.js 源码安装node.js

    2016-04-25 09:36:06
    安装前准备 安装依赖库gcc, g++: apt-get install gcc g++ 下载nodejs源码包: wget https://nodejs.org/dist/v5.1.0/node-v5.1.0-linux-x64.tar.gz 安装 解压: tar xvfz n... 安装前准备  安装依赖库...
  • 由于高版本的node.js导致gulp执行build命令失败,我需要在Windows下卸载掉已有的node.js并安装一个多版本管理工具nvm-windows,方便切换不同版本的node.js。 nvm是Linux下常用的一个node.js多版本管理工具,但是nvm...
  • 先去官网下载好长期支持的node.js压缩包, node.js 然后解压缩到你自己的目录下, 将压缩包名改为node方便后续操作 mv node-v8.11.4-linux-x64.tar.gz node 然后修改profile 或者 bashrc 文件 vim ~/....
  • NODE.JS--如何使用Node.js

    千次阅读 2018-01-16 11:59:56
    简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境...Node.js安装包及源码下载地址为:https://nodejs.
  • 这里讲的是CentOS 下的搭建方法,使用Windows的小伙伴请参考:《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记Node.js是什么?我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,...
  • node.js 刷csdn博客访问量

    万次阅读 2020-01-16 14:46:08
    身为一名前端技术人员利用node刷一下博客的访问量应该不过分吧··· 导入npm包 request以 npm 包的形式提供,是一个简单的 HTTP 客户端,通过它可方便地实现 HTTP 请求,可以用来请求网页; cherrio是用来分析dom...
  • Node.js 安装配置本章节我们将向大家介绍在...Node.js安装包及源码下载地址为:https://nodejs.org/en/download/。你可以根据不同平台系统选择你需要的Node.js安装包。Node.js 历史版本下载地址:https://nodejs.or...
  • Node.js - Node.js安装使用入门

    千次阅读 2014-06-16 10:29:03
    1.进入Node.js官网: http://www.nodejs.org/ 点击大大的INSTALL,下载文件node-v0.10.28-x86.msi。 2.运行node-v0.10.28-x86.msi文件进入安装页面: 点击next,进入license页面: 勾选I accept the terms ...
  • Node.js npm命令运行node.js脚本

    千次阅读 2018-05-13 10:01:58
    //通过npm运行node脚本 (控制台应用程序)cmd---cd package.json所在的目录---npm start cmd---npm (通过该命令可以查看npm后面能够设置的具体命令...node demo.js", // cmd环境中,npm start命令 就相当于 nod...
  • 最近去了新公司,又拾起了被我抛下许久的后端了,不过因为公司的需求,后端采用Node.js,最近一直在学习Node.js,随着逐渐深入的了解,发现真的Node.js能越来越变得热门是有其存在的道理的。可能有人会说,Java作为...
  • Node.js初体验 Kali安装Node.js

    千次阅读 2017-02-08 23:27:56
    背景:偶然看到node.js开发微信公众号的视频,有些好奇,想要接触下。然后花了两个小时在实验楼网站上在线学习了JavaScript的基础知识,以及Node.js的基础 接着本着从实践出发的原则 先去本地kali下安装个Node.js...
  • 初学Node.js,搭建Node.js运行环境

    千次阅读 2016-06-20 09:19:53
    首先去Node.js官网下载.msi文件 https://nodejs.org/en/ 直接安装就可以了,可以自定义路径。然后去配置环境变量,打开我的电脑-->高级系统设置-->环境变量-->用户变量,选择path变量编辑,将你的node安装路径复制...
  • node.js 安装详细步骤教程

    万次阅读 多人点赞 2019-01-08 22:43:01
    Node.js 官方网站下载:https://nodejs.org/en/ 选择操作系统对应的包: 下载完成,安装包如下:   2、安装 打开安装,傻瓜式下一步即可:       选择安装位置,我这里装在D盘下:    ...
  • 确认nodejs版本 清除nodejs的cache 安装 n 工具 安装最新版本的nodejs 更新npm 再次查看本机的nodejs版本 ...确认node.js版本: ...清除node.js的cache: ...//这个工具是专门用来管理node.js版本的,别怀疑这个工具的
  • node.js 初体验 http://www.cnblogs.com/Darren_code/archive/2011/10/31/nodejs.html
  • 什么是node.js?node.js的优缺点说明

    千次阅读 2017-06-19 09:25:25
    相信不少人还是不认识node.js是什么?也包括很多开发人员也是不太清楚怎么回事?其实在node.js出现之前,web应用程序构架(包括流量、处理器速度和内存速度)存在一些瓶颈。这里的瓶颈主要是指服务器能够处理并发连接的...
  • 以下教程建立在linux (centos) 操作系统基础下,也只有linux需要专门出教程,因为linux的文件位置

空空如也

1 2 3 4 5 ... 20
收藏数 208,644
精华内容 83,457
关键字:

node.js