node入门

本文详细介绍了Node.js中两种导出模块的方式及其使用场景,解析了Node.js的事件循环机制,包括宏任务和微任务的区别,以及如何正确使用npm命令进行模块管理。同时,文章还探讨了异步函数的执行顺序,并提供了实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node-base

两种导出方式,导入文件

* module.exports = testfun
* exports.one = testfun
* require('导入的文件路径') 1.导入核心模块是不用写路径的 2.导入我们自己写的模块必须写上路径

异步的先后顺序问题

  • node把所有东西都抽像为事件,所以内部会有个事件循环,异步是有优先级别的
  • 所有js代码其实都是同步的,真正异步的是函数内部的回调
  • 有两个事件队列:(事件循环)
    • macro-task 1.script(全部代码) 2.setInterval setTimeout 3.setImmedidate 4.I/O (发起请求,读写文件…)
    • micro-task 1.process.nextTick 2.Promoise
    • 代码示例
	//暂时这样理解,应该不是很对
	while(true) {
		1.script的同步代码,也就是macro-task的同步代码
		2.micro-task的代码
		3.再回来macro-task的异步代码
	}
  • 会有观察者去监控事件该怎么执行,观察者也是有优先级别的

npm => 生产环境和开发环境引入npm包的注意: 就像测试的东西,一般都是开发环境使用,而生产环境是不使用的

常用的一些npm命令

  • npm install xxx -g global全局安装
  • npm install xxx@1.1.2 指定安装版本,如果不写,则安装最新的
  • npm install xxx local本地安装
  • npm list -g 查看所有全局安装模块
  • npm uninstall express 卸载模块
  • npm update express 更新模块
  • npm search express 搜索模块
  • npm init -y 生产一个package.json(疑问? 那每次需要的模块都要自己手动去写好在.json文件,通过npm i 下载的可不可以自动写入到.json文件)

process.nextTick(这里要写一个回调函数) 代表下一轮执行的 eg:

//这个函数会在下一次事件循环
process.nextTick(function() {
	console.log(1)
});
console.log(2); 

结果:2 1

Node.js进程本身的事件就由process对象来处理(响应exit事件)

* 所以这个函数无论放在多前面其实都会最后再执行
//这个回调会函数会在程序即将退出的时候执行
process.on('exit', function() {
	console.log('我是exit,我是程序即将退出的时候运行的')
})

判断js代码的执行环境就是是node还是再浏览器

if (typeof(window) === 'undefined') {
    console.log('node环境');
}else {
    console.log('浏览器环境');
}

node里面的回调函数错误对象就是第一个参数,error

nodemon这个工具,它的作用是监听代码文件的变动,当代码改变之后,自动重启。

  • 全局安装 npm install -g nodemon
  • 使用nodemon来启动项目 nodemon app.js
  • nodemon 无法启动
    1. 尝试使用cnpm去重新安装
    2. 启动时显示 * : 无法加载文件 C:\Users\joe\AppData\Roaming\npm\nodemon.ps1。未对文件 C:\Users\joe\AppData\Roaming\npm\nodemon.ps1 进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详
  • Windows默认不允许任何脚本运行,你可以使用"Set-ExecutionPolicy"cmdlet来改变的你PowerShell环境,共有4种运行权限,
    1. Restricted——默认的设置, 不允许任何script运行
    2. AllSigned——只能运行经过数字证书签名的script
    3. RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名
    4. Unrestricted——允许所有的script运行
    5. 所以用管理员执行 Set-ExecutionPolicy Unrestricted
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值