zoukankan      html  css  js  c++  java
  • nodejs+express 初学(三)

    Nodejs 的模块,nodejs中每一个js文件都是独立的,不用担心他们中的变量会相互覆盖

     模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个
    Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、 JSON 或者编译过的 C/C++ 扩展。

    1.获取模块

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

      //module.js
    var name;
    exports.setName = function(thyName) {
      name = thyName;
    };
    exports.sayHello = function() {
      console.log('Hello ' + name);
    };
    //getmodule.js
    var myModule = require('./module');
    myModule.setName('BYVoid');
    myModule.sayHello();


    使用 module.exports = Hello 代替了 exports.Hello=Hello。在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的exports。

    不可以通过对 exports 直接赋值代替对 module.exports 赋值。exports 实际上只是一个和 module.exports 指向同一个对象的变量,它本身会在模块执行结束后释放,但 module 不会,因此只能通过指定module.exports 来改变访问接口




    2.全局对象与全局变量

    global 最根本的作用是作为全局变量的宿主

    2.1 process

    process 是一个全局变量,即 global 对象的属性。它用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口。

    process.nextTick(callback)的功能是为事件循环设置一项任务, Node.js 会在下次事件循环调响应时调用 callback。

     eg;

    function doSomething(args, callback) {
      somethingComplicated(args);
      process.nextTick(callback);
    }
    doSomething(function onEnd() {
      compute();
    });

    不要使用 setTimeout(fn,0)代替 process.nextTick(callback),前者比后者效率要低得多。

  • 相关阅读:
    Eclipse Ctrl C卡的解决方法
    oracle函数 逗号分隔的字符串的每个字串两边加上单引号
    EXT自定义颜色表单域控件
    Ext JS开发经验累积
    mysql连接远程数据库
    Hibernate使用连接池
    oracle转mysql数据库 (hibernate+spring)
    解决html中img标签src中含中文出错的问题
    ckeditor自定义图片上传,结合EXT JS
    Web自动化框架搭建——前言
  • 原文地址:https://www.cnblogs.com/myzy/p/5739976.html
Copyright © 2011-2022 走看看