zoukankan      html  css  js  c++  java
  • Nodejs

    开发辅助工具:$ supervisor app.js 

    supervisor 会监视你对代码的改动,并自动重启 Node.js

    如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你
    在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止
    Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚
    本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如
    果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因
    为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。

    使用 supervisor 命令启动 app.js:

    $ supervisor app.js
    DEBUG: Running node-supervisor with
    DEBUG: program 'app.js'
    DEBUG: --watch '.'
    DEBUG: --extensions 'node|js'
    DEBUG: --exec 'node'
    DEBUG: Starting child process with 'node app.js'
    DEBUG: Watching directory '/home/byvoid/.' for changes.
    HTTP server is listening at port 3000.

    当代码被改动时,运行的脚本会被终止,然后重新启动。在终端中显示的结果如下:

    DEBUG: crashing child
    DEBUG: Starting child process with 'node app.js'
    HTTP server is listening at port 3000.

    supervisor 这个小工具可以解决开发中的调试问题。

    创建模块

    Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

    创建包

    Node.js的包一个目录,其中包含一个JSON格式的包说明文件pagekage.json。严格符合commonJS规范的包应该具备一下特征:

    • package.json必须包含在顶层目录下;
    • 二进制文件在bin目录下;
    • javascript代码在lib目录下;
    • 文档应该在doc目录下;
    • 单元测试应该在test目录下。

    1.作为文件夹的模块:模块与文件一一对应的。

    2.package.json,在文件夹下建;Node.js 在调用某个包时,会首先检查包中package.json文件的main字段,将其作为包的接口模块,如果package.json或main字段不存在,会尝试寻找index.js或者index.node作为包的接口。

    package.json是CommonJS规定的用来描述包的文件,完全符合规范的package.json文件应该含有一下字段。

    • name:包的名称,必须唯一的,由小写英文字母、数字和下划线组成,不能包含空格
    • description:包的简要说明;
    • version:符合语义化版本识别规范的版本字符串;
    • keywords:关键字数组,每个元素要包含name、email(可选)、web(可选)字段;
    • contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一个元素;
    • bugs:提交bug的地址,可以是网址或者电子邮件地址;
    • licenses:许可证数组,每个元素要包含的type(许可证才名称)和url(链接到许可证文本的地址)字段;
    • repositories:仓库托管地址数组;每个元素要包含type(仓库的类型,如git)、url(仓库的地址)和path(相对仓库的路径,可选)字段;
    • dependencies:包的依赖,一个关联数组,由包名称和版本号组成。

    完整的package.json示例:

    {
        "name": "mypackage",
        "description": "Sample package for CommonJS. This package demonstrates the required elements of a CommonJS package.",
        "version": "0.7.0",
        "keywords": [
            "package",
            "example"
        ],
        "maintainers": [
            {
                "name": "Bill Smith",
                "email": "bills@example.com",
            }
        ],
        "contributors": [
            {
                "name": "BYVoid",
                "web": "http://www.byvoid.com/"
            }
        ],
        "bugs": {
            "mail": "dev@example.com",
            "web": "http://www.example.com/bugs"
        },
        "licenses": [
            {
                "type": "GPLv2",
                "url": "http://www.example.org/licenses/gpl.html"
            }
        ],
        "repositories": [
            {
                "type": "git",
                "url": "http://github.com/BYVoid/mypackage.git"
            }
        ],
        "dependencies": {
            "webkit": "1.2",
            "ssl": {
                "gnutls": [ "1.0", "2.0" ],
                "openssl": "0.9.8"
            }
        }
    }

    使用node-inspector调试Node.js,

    安装:npm install -g node-inspector,然后在终端中通过node --debug-brk=5858 debug.js命令来连接你要除错的脚本的调试服务器,启动node-inspector:

      $ node-inspector

      在浏览器中打开http://127.0.0.1:8080/debug?port=5858,即可显示出优雅的web调试工具(仅在WebKit内核浏览器中使用)。

  • 相关阅读:
    FxCopCmd.exe 返回错误代码 65[翻译]
    关于VS2005安装项目制作的三个参考文章链接
    Windows服务开发的四个小经验
    ThreadLocal详解
    java修饰符详解
    聚合、组合、关联、继承之间的区别【转】
    centos单用户模式修改ROOT密码
    vim的配置
    spring注解详解
    centOS修改文本界面分辨率
  • 原文地址:https://www.cnblogs.com/everyone/p/3522080.html
Copyright © 2011-2022 走看看