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框架。欢迎和我一起继续学习