当前位置: 移动技术网 > IT编程>开发语言>JavaScript > node.js基础知识

node.js基础知识

2020年07月23日  | 移动技术网IT编程  | 我要评论

【1】
Node.js严格来说不是一个框架,而是一个平台。
Node.js的技术栈:

	(1)Node.js的核心模块。
	(2)需要学习的框架:Express、KOA框架...等。
	(3)模板引擎:是一种编译型HTML语言,例如:Pug、(Jade)、EJS 等。
	(4)编译型CSS: Lass / 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可以省略

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

三、认识模块(Module)

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

例1: 执行另一个模块中的功能。

	b.js模块
		console.log(‘我是B模块’);
	frist.js模块
		require(‘./b’);
		console.loh(‘我是主模块’);
	执行node frist(.js可省略)

在这里插入图片描述在这里插入图片描述
结果:
在这里插入图片描述

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;

在这里插入图片描述

frist.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;

在这里插入图片描述

frist.j模块:

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

在这里插入图片描述
在这里插入图片描述

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

本文地址:https://blog.csdn.net/weixin_45459904/article/details/107508639

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网