zoukankan      html  css  js  c++  java
  • nodejs点滴

    1、推荐一本很不错的介绍书,很短,但是可以一窥nodejs写http服务器的方式

      http://www.nodebeginner.org/index-zh-cn.html

    2、cluster实现模式

      由于node是单进程单线程的方式运行,因此若想发挥多核的优势需要使用进程组的方式进行。

      node之中提供了cluster模块用于实现多进程之间的通讯,进程分成一个主进程与多个从进程。

      对于HTTP服务器,通过child_process.fork进行创建工作进程,因此可以在主从进程之间进行通讯。

      当在从进程调用server.listen时,会将listen的参数序列化后传递给主进程,主进程判断在该端口是否已经有监听的服务,若服务已经存在则直接返回该sockid,否则创建一个返回sockid。

      当有一个客户端连接上来时,会有多个进程调用accept此时有操作系统进行负载均衡,决定由哪个进程最终得到该客户端请求的连接。

      另外需要注意,cluster模块没有任何其他管理进程的功能,因此对进程的管理需要由应用自行处理。

    3、去哪里找当前node支持的模块

      通过github上搜索node,查找到joyent-node那个项目,查看其wiki连接,找到Modules部分,那里有列表。

      https://github.com/joyent/node/wiki/Modules

    4、关于模块信息

      实现require目录的三种情况:1)创建package.json文件,然后在该文件中定义一个main,如下:  

    { "name" : "some-library",
      "main" : "./lib/some-library.js" }
    

      2)当目录下没有package.json文件时,将试着加载index.js, index.node 文件。

      关于exports对象,该对象默认由Modules System创建,但是可以修改。只要直接将该对象重新赋值即可。如:  

    module.exports = new EventEmitter();
    

    5、实现模块的动态加载

      在nodejs之中require加载的模块会进行缓存,也就是调用两次require同样的文件,只会加载一次。

      而为了实现动态加载,需要require去加载文件而不是使用缓存,为了实现该方法,需要将缓存删除后再加载即可。

      delete require.cache[require.resolve("./deal")];
      var deal = require("./deal");
    

      参考网址:http://stackoverflow.com/questions/9210542/node-js-require-cache-possible-to-invalidate

      http://stackoverflow.com/questions/1972242/auto-reload-of-files-in-node-js  

     6、node-gyp找不到v8.h的异常

      可能原因是在node-gyp目录中没有deps目录:找到 ~/.node-gyp/0.10.4 目录,查看目录下是否存在deps,src目录,若没有则可能是由于安装多个的node

    导致,~/.node-gyp/0.10.4 中的 0.10.4 表示当前node的版本。

      解决方法:删除这个目录,然后使用 npm install node-gyp 重新安装即可。

  • 相关阅读:
    人生转折点:弃文从理
    人生第一站:大三暑假实习僧
    监听器启动顺序和java常见注解
    java常识和好玩的注释
    182. Duplicate Emails (Easy)
    181. Employees Earning More Than Their Managers (Easy)
    180. Consecutive Numbers (Medium)
    178. Rank Scores (Medium)
    177. Nth Highest Salary (Medium)
    176. Second Highest Salary(Easy)
  • 原文地址:https://www.cnblogs.com/chang290/p/2933951.html
Copyright © 2011-2022 走看看