欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

node.js基础知识

程序员文章站 2022-04-15 20:01:02
【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),视图和页面(模板引擎)有关,...

【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文件。
node.js基础知识
cmd下运行:
node.js基础知识
// .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可省略)

node.js基础知识node.js基础知识
结果:
node.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;

node.js基础知识

frist.js模块:

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

node.js基础知识

**结论:**当使用另一个模块的变量和函数时,暴露使用格式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;

node.js基础知识

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());    

node.js基础知识
node.js基础知识

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

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