Node.js初学第二天

一、模块

每一个js文件是一个模块;多个js文件相互调用,共同实现一个功能,也叫作一个模块。所以:模块就是一些功能的封装

1》js文件和js文件有两种合作模式:

     1、某一个JS文件中提供了函数,供别人使用,只需要暴露函数就行了。用exports和require联合使用;

     2、某一个js文件中描述了一个类。module.exports=构造函数名;

2》node_modules文件夹:

node中,引包的时候,如果不写“./”,默认是从node_modules中引用相应的js文件;eg:var foo=require("foo.js");类似于:var foo=require("./node_modules/foo.js");

不写“.js”,默认引用node_modules文件夹下的子文件夹中的index.js文件;eg:var foo=require("foo"); 即:引用node_modules文件夹下的foo文件夹下的index.js文件;

3》package.json文件:

每一个模块文件夹中,推荐都写一个package.json文件,这个文件的名字不能改。node将自动读取里面的配置。有一个main项,就是入口文件:

          {

           "name": "kaoladebar",

           "version": "1.0.1",

            "main" : "app.js"

           }

         

package.json文件,要放到模块文件夹的根目录去。

二、npm(node package management)

工程师将一些常用的函数封装成一个个的包,放到社区npm(https://www.npmjs.com/)上供别人使用;

使用方法:在https://www.npmjs.com/中找到要使用的包,在cmd中输入命令:  npm install  包名

 代码中引用的时候,直接用require(“包名”);即可

eg:

var silly=require("silly-datetime");
console.log(silly.format(new Date(),"YYYYMMDDHHmm"));

三、路径

_dirname :表示绝对路径(访问模块的时候,直接写相对路径即可,但是当访问文件如txt,则需要写绝对路径);

require()别的js文件的时候,将执行那个js文件。

require()中的路径,是从当前这个js文件出发,找到别人。而fs是从命令提示符找到别人。

所以,桌面上有一个a.js, test文件夹中有b.js、c.js、1.txt

a要引用b:

         var b = require(“./test/b.js”);

b要引用c:

           var b = require(“./c.js”);

 

但是,fs等其他的模块用到路径的时候,都是相对于cmd命令光标所在位置。

所以,在b.js中想读1.txt文件,推荐用绝对路径:

           fs.readFile(__dirname + "/1.txt",function(err,data){

                 if(err) { throw err; }

                 console.log(data.toString());

           });

 

 

posted @ 2016-08-02 18:03  飙速  阅读(842)  评论(0编辑  收藏  举报