入门学习Node.js

Node.js严格来说不是一个框架,而是一个平台。
Node.js技术栈:
(1)Node.js的核心模块。
(2)至少要学习一个Node下的框架:Express框架、KOA框架。
(3)模板引擎:是一种编译型HTML语言,例如:Pug(Jade)、EJS等。
(4)编译型CSS:Less/Sass/Stylus等。
(5)数据库:mongoDB、MySQL。

一、MVC架构:
1、M:模型(Model),模型和数据库有关。
2、V:视图(View),视图和页面(模板引擎)有关,用户最终能看到的就是视图。
3、C:控制器(Controller),用来对数据进行加工的操作的对象,以保证在视图上显示的是用户有效地数据和数据格式。

二、Node.js让JavaScript文件可以独立执行:
1、JavaScript文件是脚本文件,不能脱离主语言(HTML)而单独执行,必须在浏览器的辅助下执行。
2、Node.js让JavaScript文件可以独立执行:在js文件所在的目录下,通过node命令执行js文件。
cmd找到你的js文件的地址然后输入 node js文件名.js 就可以执行了 .js 可以省略
在这里插入图片描述

3、在Node.js下,JavaScript文件中不能使用DOM操作,因为Node.js中没有window对象。例如 alert()

三、认识模块(Module):
1、Node.js 全面兼容CommonJS的模块规范,Vue.js全面兼容ECMAScript的模块规范。
2、模块:一个独立的js文件就是一个模块。
3、Node.js中模块有三种:
(1)核心模块:随着Node.js的安装自动装在本地的模块。
(2)文件模块:用户自己书写的js文件就是文件模块。
(3)第三方模块:由第三方提供的模块。
4、CommonJS规定了模块的导入和导出的方法:
(1)传统的js文件之间是可以互相访问变量和函数的,传统的js文件是没有“块级作用域”的。
(2)Node.js将js文件看成是模块,模块之间不能互相访问变量和函数的,模块之间是具备“块级作用域”的。
(3)模块的导入(引入):
A . 格 式 1 : r e q u i r e ( “ 模 块 名 ” ) ; B . 格 式 2 : v a r 变 量 = r e q u i r e ( “ 模 块 名 ” ) ; A .格式1:require(“模块名”); B .格式2:var 变量 = require(“模块名”); A.1require();B.2var=require();
(4)模块的导出(暴露):
A . 格 式 1 : e x p o r t s . 变 量 名 = 数 据 ; B . 格 式 2 : m o d u l e . e x p o r t s = 对 象 / 类 ; A .格式1:exports.变量名=数据; B .格式2:module.exports=对象/类; A.1exports.=;B.2module.exports=/;

我们看几个例子:

例1:执行另一个模块中的功能。
有两个模块,分别是 first.jsb.js

b.js模块:

 console.log("我是B模块");

first.js模块:

require("./b");
console.log("我是主模块");

执行node first
打印结果为:

我是B模块
我是主模块

A .需要执行另一个模块的功能时,另一个模块不需要暴露。
B .当执行require()方法时,成功引入模块同时执行了引入的模块。
C .当需要执行另一个模块时,引入另一个模块采用格式1。

例2:使用另一个模块中的变量或函数。

b.js模块:

var x=5;               //b模块的变量x
function fact(n){        //b模块的函数fact
	var result=1;
	for(var i=2;i<=n;i++){
		result*=i;
	}
	return result;
}
exports.para=x;
exports.fun=fact;

first.js模块:

var b=require("./b");     //b变量接收了导入的b模块所暴露的内容
var x=b.fun(b.para);
console.log(x);

结论:当使用另一个模块的变量和函数时,暴露使用格式1,引入使用格式2。

例3:使用另一个模块中的对象

b.js模块:

function Ball(x,y,radius){
	this.x=x;
	this.y=y;
	this.radius=radius;
}
Ball.prototype.setRadius=function(newRadius){
	this.radius=newRadius;
}
Ball.prototype.getRadius=function(){
	return this.radius;
}
module.exports.Xball=Ball;

first.js模块:

var temp=require(./b”);
var ball=new temp.Xball(10,20,5);
console.log(ball.getRadius());            //5
ball.setRadius(15)j;
console.log(ball.getRadius());            //15

结论:要是用另一个模块中的对象,暴露使用格式2,引入使用格式2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值