Nodejs第一讲记录

举报
穆雄雄 发表于 2022/12/09 22:31:42 2022/12/09
【摘要】 大家好, 我是雄雄,欢迎关注公众号 :雄雄的小课堂 Node.js Node的简介node是运行在服务端的JS基于谷歌 JavaScript运行时建立的一个平台是一个事件驱动IO服务端JavaScript环境,基于谷歌V8引擎,V8引擎执行JavaScript的速度非常快,性能比较好如果你是后端程序员,想部署一些高性能的服务,那么学习Node.js也是一个非常好的选择。 Hbuilder中安...

大家好, 我是雄雄,欢迎关注公众号 :雄雄的小课堂

Node.js

Node的简介

  • node是运行在服务端的JS
  • 基于谷歌 JavaScript运行时建立的一个平台
  • 是一个事件驱动IO服务端JavaScript环境,基于谷歌V8引擎,V8引擎执行JavaScript的速度非常快,性能比较好

如果你是后端程序员,想部署一些高性能的服务,那么学习Node.js也是一个非常好的选择。

Hbuilder中安装node插件

点击工具–》插件安装–》选择nodejs的插件,点击后面的选择,点击安装。

​编辑

然后选择需要运行的js文件,右击,点击运行方式–》Node Application,即可在控制台中输出内容

​编辑

Hbuilder中添加cmd外部工具

点击==运行==,选择外部工具,选择外部工具配置 ,点击新建 ,起个名字比如叫【cmd】 ,在要执行的命令活文件里面写C:\Windows\System32\cmd.exe ,然后下面的浏览工作空间 ,直接选择当前需要操作的项目即可。

​编辑

使用外部工具的方式运行js文件:

右击js文件, 点击外部工具,选择==cmd== ,这个时候就会打开控制台,然后在控制台中输入node js文件名.js回车即可。

​编辑

Node.js模块化

ECMAScprit标准的缺陷 1.没有模块系统 2.标准库比较少 3.没有标准接口 4.缺乏管理系统

  • 如果程序设计的规模达到了一定的程度,则必须进行模块化
  • 模块化可以有多种形式,但是至少应该提供能够将代码分割为多个源文件的机制
  • CommonJS的模块功能可以帮我们解决该问题。

总结:

1.对于Node.js来说,一个js文件就是一个模块 2.在``Node.js中,我们通过require()函数来引用其他模块。require(“路径”),可以传递一个文件的路径作为参数,如果使用 相对路径,必须以.或..开头 3.使用require()函数`引入一个模块后,该函数会返回一个对象,这个对象代表的是引入这个模块。4.在node中,每一个js文件中的js代码都是独立运行在一个函数中,而不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问

在一个文件中引入另一个文件, 使用require函数引入别的模块,语法如下:

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

module01.js中的内容:

console.log("但是");
exports.x= 10;

在Node中,每个js文件中的js代码都是独立运行在一个函数中的,而不是全局作用域的,所以一个模块中的变量和函数是不能在别的模块中调用, 如果在A文件中有这样的声明var a = 10 ,那么在B文件中是无法直接调用,那么此时需要修改A文件代码为:exports.a = 10, 则在B文件中即可调用(console.log(md.a);

函数也是一样的原理,如果想要在B文件中调用,则需要在函数的前面加exports关键词。

console.log("但是");
exports.x= 10;
exports.fn = function(a,b){
 return a+b;
};

var md = require("./Module01.js");
console.log(md.x);
console.log(md.fn(10,10));

问题分析

如果有多个字段或者方法需要暴露出来供别的js文件访问的时候怎么办?

笨方法:

exports.name = "王炎霸";
exports.age = 18;
exports.sayName = function(name){
  console.log("传过来的姓名是:"+name);
 };

显然这种方式太麻烦, 那么我们可以用module.exports的方法来编写:

module.exports={
 name : "张三",
 age :14,
 sayName:function(name){
  console.log("原来的名字是:"+this.name);//调用上面的name属性
  console.log("传过来的姓名是:"+name);   //接收参数name的值输出
 }
}

调用的代码:

console.log(md.sayName("李四"));

在Node 中有一个全局对象global,它的作用与网页中的window类似,在全局中创建的变量都会作为global的属性保存, 在全局总创建的函数都会作为global的函数保存

局部变量:

var num = 10;

全局变量:

num = 10; 

获取全局变量:

console.log(global.a);

总结

1.实际上当node执行模块中的代码时,他首先会在代码的最前端 ,添加如下代码:

function (exports, require, module, __filename,__dirname) {
    //模块中的代码
}

而在代码的最低端则会添加一对{}

2.实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递了5个实参。

3.查看长度  console.log(arguments.length);

  • exports:该对象用来将变量或函数暴露在外部
  • require:该函数用来引入外部模块
  • module:代表当前模块本身,exports就是module的属性,既可以使用exports导出,也可以使用modult.exports导出
  • _filename:当前模块完整路径
  • _dirname:当前模块目录

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。