环境配置及构建
-
安装nodejs
-
nvm 版本管理器
-
模块化
- CommonJS
// 导出模块成员
exports.sum = sum;
// 导出成员的另一种方式
module.exports = function(){}
//成员导出
module.exports = {
sum : sum,
subtract : subtract,
multiply : multiply,
divide : divide
}
//引入
var module = require('./03.js');
基本
命令:
node a.js
1、javascript本质上是什么?就是一门编程语言,解释执行的
2、浏览器的内核包括两部分核心:1、DOM渲染引擎;2、js解析器(js引擎)
3、js运行在浏览器中的内核中的js引擎内部
4、是否js只能运行在浏览器中?不是的
5、实现动态网站的技术:java php .net python nodejs…
6、基于Node.js和第三方工具electron可以开发桌面应用程序
7、命令行方式REPL read-eval-print-loop 读取代码-执行-打印结果-循环这个过程
8、在REPL环境中,_表示最后一次执行结果; .exit 可以退出REPL环境
2. node 的第一个应用
node 的安装
新建一个app.js
function sayHello(name) {
console.log('hello ' + name)
}
sayHello('Mob')
注意node 中没有document
,和window
对象
3.node 模块系统
node中的全局函数
console.log
settimeout()
clearTimeout()
setInterval()
当在浏览器环境中,这些东西其实都是挂载在window
对象中,但在node端,并没有这个window对象
在node中我们有个相似的全局对象global
上面的函数都可以使用global.
来使用
但是,不同的是,我们自定义的变量和函数,并没有挂载到global之中,因为我们的一个js文件,其实就形成了一个独立的作用域,它就相当于一个模块
不同的文件/模块
内定义的变量和函数不会重名,因为它们被封装在自己的模块内。它们是私有成员,在文件/模块
外部是不可见的。所以当我们需要在模块外使用它时,就要导出它为公开成员
我们可以先输出module看它是个什么
创建一个模块,然后导出供外部使用的接口
dvd只有很少的按钮暴露出来 ,给我们操作,但其内部是有很多功能元件的
如果 要导出的功能/接口只有一个,可以直接module.exports =
为什么一个js就是一个模块
先用一个出错 的js,来看输出 的错误信息
function (exports, require, module, __filename, __dirname)
这些东西,都是传进去的参数,输出一下这些参数
常用的系统内建模块
fs【file system】,path,http,os,events
path
- .basename//获取路径的最后一部分
- __dirname//获取路径
- .dirname//获取路径
- .extname//获取扩展名称
- .format()
- .parse()
- .isAbsolute判断是否为绝对路径
- .join//拼接路
- .normalize//规范化路径
- .relative//计算相对路径
- .resolve//解析路径
os![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/202d5eaa0695b253272cfe24869ed9dc.png)
fs
readdir
stat
readFileSync
writeFileSync
文件操作,网络操作等io操作,都尽量用异步方式来操作
因为js是单线程的,这种耗时较长的操作会阻塞程序的运行
events![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6efb8a946b1b005269bb6e5abd23dcb3.png)
这是events中的发起事件和处理事件
先注册一个能响应处理事件的函数,用on,来监听什么事件
然后用emit触发这个事件,一但触发,注册时的函数就会被执行
事件参数
http
提示:如有不对请多多指教!希望给您带来帮助!多谢。