node.js阶段 - node.js并不可怕

初步了解node.js

node.js

并不是一个框架,只是一个js语言,诞生于2009年,由 C++ 语言编写成
使 JS 脱离浏览器端,仍然是基于浏览器的

node搭建基础服务器
	
	console.log("hello,everyone!") // 测试数据
	// 引入 node模块
	const http = require("http");//内置模块
	
	// 通过模块去创建服务
	// 服务器只是个本地服务器
	// 必须先开启服务
	const server = http.createServer((req, res) => {
    	res.write("1223")
    	res.end();
	})
	
	// 端口号 浏览器查找的依据
	server.listen(3005)
	

启动服务

node 运行文件

node + 文件名.后缀

启动的服务有局限性 数据修改后需要手动重启

  • 方法: 以 http.js 为例
    在 电脑终端 或 编译器的集成的终端中 进入想要运行的文件所在的文件夹下
    输入 node http.js ( 一个字符都不能少 )
    在这里插入图片描述
nodemon + 文件名.后缀

自动更新保存数据
在系统上使用时没用问题的,在编译器上直接启用有可能会出错 ( 原因:没有权限 )

  • 安装 nodemon 方法
    npm i nodemon -g 或者 npm install nodemon -g
  • nodemon 运行文件 以 http.js 为例
    在 电脑终端 或 编译器的集成的终端中 进入想要运行的文件所在的文件夹下
    输入 nodemon http.js ( 一个字符都不能少 )
    在这里插入图片描述
解决集成终端无法运行 nodemon 的问题
  • 方法一
    进入电脑的设置 => 开发人员模式 => 自动安装
  • 方法二
    搜索 Windows PowerShell (执行策略 管理员模式打开) => get ExecutionPolicy (查询执行状态
    Restricted 表示不允许执行 RemotsSigned 表示允许执行) => set ExecutionPolicy RemotsSigned
    (设置执行状态) => y (同意)

设置结束后 如果还是报错 只是编译器没有调整过来 ,重启编译器

浏览器方式查看运行的文件

开启方式有三种 ( 不可以在编译器中直接打开 )
需要打开浏览器后,修改网址

  • localhost:端口号
    在这里插入图片描述
  • 127.0.0.1:端口号 ( 127.0.0.1 为计算机自带 )
    在这里插入图片描述
  • ip地址:端口号(网络状态 ipconfig查询网络)

模块化

模块化优势
  • 使代码的结构更加清晰,便于后期维护
  • 避免变量污染,每一个模块 都有自己独立的命名空间
  • 可以按需加载, 提升性能
node模块分类
  • 自定义模块
    不需要安装,自定义使用,同级目录 必须加 ". / " — 位置是自定义的
  • 内置模块
    由 node 自带,直接导入使用即可 — 位置在 node_modules文件夹下
  • 外置模块
    使用 npm 通过指令按需安装 — 位置是node_modules
  • package.json 特殊的文件(不是模块)
    对应他的上级目录,记录或者配置该文件夹的所有信息
模块化使用导出

建议按需导出,自行决定

  • module.exports 导出
    接收一个对象,对象中包含多个需要导出的内容,(数量不限)

	let a = 10;
	class Preson{
    	constructor(){

    	}
    	hobby(){
        	console.log("游泳")
    	}
	}
	// 
	module.exports = {
	    a,
	    Person
	}
	
  • exports.自定义名称 导出
    module.exports 的引用,导出单个目标时,使用

	let a = 10;
	class Preson{
	    constructor(){
	    }
	    hobby(){
	        console.log("游泳")
	    }
	}
	exports.a = a;
	exports.Person = Person;
	
模块化使用导入

以下的两种方式实际是一种导入,只是不同的接收方式

  • 使用变量来保存接收到的数据

	let Spa = require("./index.js");
	
  • 直接使用解构赋值 推荐方式

	let {a,Person} = require("./index");
	console.log("我是被导入的" + a);
	let p = new Person();
	p.hobby();


JS模块和 JS文件 使用时最直观的区别

JS文件

    <script src="http.js"></script>
    <script src="modulA.js"></script>

  • 使用时, script标签引入的是整体文件
  • 需要 文件名.文件格式
  • 同级目录下直接写 文件名.文件格式 即可
JS模块

	require("./home")

  • 使用时, require 引入的是模块中导出的部分
  • 只需要模块名称即可
  • 同级目录下,路径的前缀必须加 ./
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值