这是我参与「第五届青训营 」伴学笔记创作活动的第6天,nodejs是将js运行在服务端的开发平台,可以让前端人员通过js去写接口,并且node的包管理工具npm是世界上最大的开源系统,在chrome V8的支持下,js的运行速度提升了很多。node环境是前端程序员必不可少的,无论是npm还是使用vue框架,都需要node,nodejs具有丰富的核心模块,文件系统、操作系统、网络系统和数据库,对文件操作、路径操作,创建http模块。
express框架提供了强大的特性,包括静态文件服务、路由控制、模块解析支持、动态视图、用户会话、csrf保护、缓存等多种功能。首先下载express包npm i express,使用require引入express模块创建app实例,使用app.get()去完成接口的编写,app.listen监听端口号,node app.js启动服务。可以中间件来处理客户端的请求做出响应,对复杂的请求处理逻辑,进行分开处理,可以针对同一个请求设置多个中间件,对同一个请求进行多次处理,调用next参数讲请求控制权交给下一个中间件。
还可以捕获错误,可以使用promsie对象的异步api发生错误用catch方法捕获,也可以使用try catch捕获。可以构建模块化路由,把路由文件单独放到router文件夹里面,构建模块化的路由,使用req.query获取get请求参数,内部框架将其参数转换为对象进行返回,post参数使用body-parser模块进行获取。可以使用nodejs去连接数据库,我经常使用的是mysql,可以使用sql语句对数据库进行增删改查。
nodejs是commonjs的语法,只能在后端使用,commonjs使用require加载模块时,不会再执行该模块,而是取到缓存中的值,commonjs模块输出的是一个值的拷贝并且是运行时加载,es6是输出值的引用并且是编译时输出接口。
nodejs虽然是后端语言,但是js的语法前端人员都很熟悉,了解nodejs之后会发现以前不知道的地方,具有超强的高并发能力,通过非阻塞I/O、事件驱动机制,具有高性能服务器,开发高效。