Node.js的基本应用你知道多少
一、Node.js是什么
1、浏览器的内核
(1)传统意义上的javascript运行在浏览器上,这是因为浏览器内核实际上分为两个部分,渲染引擎和javaScript引擎。前者主要负责渲染HTML+CSS,后者主要负责运行javaScript。
渲染引擎:用于渲染HTML、CSS
js引擎:用于执行JavaScript代码
(2)Node.js搭建了一个JavaScript的服务器运行环境,JavaScript可以脱离浏览器直接运行
(3)Node相当于JavaScript的虚拟机,虚拟的构建一个JavaScript的“运行环境”
(4)Node使用的谷歌的V8引擎,可以方便的调用操作系统资源
2、为什么要用node.js
(1)JavaScript的函数式编程:没有独立的运行环境,无法满足工程化的需求
(2)语法宽松,像'玩具语言',在开发时标准不统一
(3)Node.js 适合以下场景:
A、实时性应用,比如在线多人协作工具,网页聊天应用等。
B、以 I/O 为主的高并发应用,比如为客户端提供 API,读取数据库
C、流式应用,比如客户端经常上传文件。
D、前后端分离。
3、node.js应用程序的示例
const http = require('http') //引入了 Node.js http 模块
const hostname = '127.0.0.1'
const port = 3000
//创建HTTP 服务器,并提供两个对象:一个请求(http.IncomingMessage 对象)和一个响应(http.ServerResponse 对象)
const server = http.createServer((req, res) => {
res.statusCode = 200 //设置 statusCode 属性为 200,以表明响应成功。
res.setHeader('Content-Type', 'text/plain') //设置 Content-Type 响应头
res.end('Hello World!\n') //关闭响应,添加内容作为 end() 的参数
})
//服务器启动监听
server.listen(port, hostname, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`)
})
req
:是request对象(请求对象):包含客户端向服务端发送请求的请求信息
res
:是response对象(响应对象):包含服务器端向客户端发送的响应信息
在浏览器中访问服务器:http://127.0.0.1/3000。渲染效果:
二、Node.js中的npm
1、什么是npm:是node自带的包管理器,用于安装、卸载node程序中使用的模块
2、下载并安装npm服务器上的第三方模块
3、下载别人编写好的命令行程序
4、可以将自己写的模块上传到npm服务器(模块共享)、
5、常用指令:
(1)查看npm是否安装成功(及版本号): npm -v
(2)升级npm: npm install npm -g
(3)全局安装:被安装的模块在所有的node项目中都可以使用: npm install 模块名称 -g
注意:如果出现以下错误: npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解决办法为: $ npm config set proxy null
(4)本地安装:npm install 模块名称
(5)安装指定版本号的模块:npm install 模块名称@版本号
(6)重新安装一个cnpm(定位到淘宝镜像),用cnpm命令安装模块:
npm install -g cnpm --registry=https://registry.npm.taobao.org
(7)卸载安装的模块:npm uninstall 模块名称
三、yarn包管理器
高效、快速、安全可靠的包管理器
1、带有缓存机制:将第一次下载的包缓存下来。提高了包的安装下载速度
2、安装:npm install yarn
3、初始化:yarn init
4、查看版本号:yarn --version
5、安装模块:yarn add 模块名称@版本号
6、卸载模块:yarn remove 模块名称
四、REPL环境
"读-取-输出-循环"的环境,可以直接运行JavaScript指令
REPL是Node.js与用户互动的shell,各种基本的shell功能都可以在里面使用,
特殊变量下划线(_)表示上一个命令的返回结果。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341