nodejs入门指南(二)

99 阅读3分钟

1.安装:

请参考:http://www.runoob.com/nodejs/nodejs-install-setup.html进行下载和安装

2.模块:

  在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分。不可能用一个js文件去写全部的业务。肯定要有MVC。 

狭义的说,每一个JavaScript文件都是一个模块;而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块

Node.js中,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports对象进行暴露。使用者要用require()命令引用这个JS文件。

例如:test.js文件中的代码:

   var msg = "你好";
   exports.msg = msg;
   msg这个变量,是一个js文件内部才有作用域的变量。

如果别人想用这个变量,那么就要用exports进行暴露。

使用者:

   var test = require("./test.js");
   console.log(test);

使用者用test来接收exports对象,也就是说,这里的test变量,就是文件中的exports变量。

一个JavaScript文件,可以向外exports无数个变量、函数。但是require的时候,仅仅需要require这个JS文件一次。使用的它的变量、函数的时候,用点语法即可。所以,无形之中,增加了一个顶层命名空间。

Node中,js文件和js文件,就是被一个个exports和require构建成为网状的。不是靠html文件统一在一起的。

需要注意的是:如果在require命令中,这么写:

  var test= require("test.js");//没有写./,所以不是一个相对路径。是一个特殊的路径。那么Node.js将该文件视为node_modules目录下的一个文件

node_modules文件夹并不一定在同级目录里面,在任何直接祖先级目录中,都可以。甚至可以放到NODE_PATH环境变量的文件夹中。这样做的好处稍后你将知道:分享项目的时候,不需要带着modules一起给别人。

我们可以使用文件夹来管理模块,比如var bar = require("bar");那么Node.js将会去寻找node_modules目录下的bar文件夹中的index.js去执行。

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

{ "name": "jinsanpang", "version": "1.0.1", "main": "app.js" } 这个package.json文件,要放到模块文件夹的根目录中去

根据上述所学,我们知道,模块就是一些功能的封装,所以一些成熟的、经常使用的功能,都有人封装成为了模块。并且放到了社区中,供人免费下载。这个伟大的工具就是npm (https://www.npmjs.com/) ,使用npm install 模块名字就可以安装自己需要的模块

需要注意的是:require()别的js文件的时候,将执行那个js文件。require()中的路径,是从当前这个js文件出发,找到别人。而fs是从命令提示符找到别人。

3.模板引擎:

就我个人而言,我更希望对于我们前端开发工作人员来说,做到前后端分离。如果你是后台开发人员,没关系你可以用模板引擎实现前端view。有俩个比较著名的:一个是ejs,一个是jade。大家有兴趣可以参考:http://blog.csdn.net/show_me_the_world/article/details/51945035和https://www.jianshu.com/p/e2a9cd3b7e56

本系列课程以实战例子为主,由于个人知识有限,如果在此过程中有什么问题,欢迎给我留言。

下一节:node实战入门express框架。欢迎和我一起继续学习