博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NodeJS基础
阅读量:6825 次
发布时间:2019-06-26

本文共 1897 字,大约阅读时间需要 6 分钟。

hot3.png

NodeJS的特点

1、是一个JavaScript的运行环境

2、依赖于Chrome V8引擎进行代码解释

3、事件驱动,在Node中,客户端请求建立连接,提交数据等行为,会触发相应的事件

4、非阻塞I/O,即异步输入输出,提高程序的执行效率

5、轻量级应用,适用于实时数据交互

6、单线程,减少内存开销,无需在意线程同步的问题,但是一个错误可能会引起整个程序的退出


NodeJS的适用场景

NodeJS擅长处理I/O,不善于计算

因此适用于需要处理大量并发的I/O,但内部无需进行复杂的逻辑处理的应用程序,如聊天室,博客系统等


NodeJS REPL

Read Eval Print Loop:交互式解释器,表示一个运行的环境,如cmdshellIDLE

启动node终端:先查看电脑中是否安装node: node -v,若以安装,执行node命令即可启动node终端

node终端中执行JavaScript代码:

Chrome浏览器的Console控制台中执行JS代码一样,直接输入就行。如:console.log('hello world')

使用node执行JS文件:退出node终端ctrl + d;执行node xxx.js即可


NodeJS全局对象

JavaScript的全局对象是window

NodeJS的全局对象是global,所有的全局变量都是global的属性,可以直接访问

常用全局函数:setTimeout()clearTimeout()setInterval()clearInterval()console.log()

console.log(__filename) //输出当前js文件的全路径,包括文件名console.log(__dirname) //输出当前js文件的所在的目录,不包括文件名

使用NodeJS创建一个应用

1、引入http模块,使用require指令来引入Node.js模块

2、创建服务器:服务器可以监听客户端的请求

3、接收请求和响应请求

var http = require('http') //加载http模块http.createServer(function (request, response) {    //发送HTTP头部:HTTP状态值,200:OK;内容类型:text/plain    response.writeHead(200, { 'Content-Type': 'text/plain' })    //发送响应数据'hello world'    response.end('hello world\n')}).listen(8080) //监听8080端口,在浏览器中输入localhost:8080即可访问console.log('Server running at http://127.0.0.1:8080/')

cmdGitBash中执行node server.js即可启动web服务,在浏览器中输入请求,可进行访问和调试


NodeJS包

包用于管理多个模块及其依赖关系,包的更目录必须包含package.json文件

此文件是用来描述包的文件,可以在根目录下通过npm init --yes快速生成

包操作:安装,npm install express;删除,npm uninstall express;更新,npm update express

模块:导入,require();导出exports =,单个导出module.exports =,通常使用前者,写起来更简洁


NodeJS异步编程

//阻塞/同步var fs = require('fs')var data = fs.readFileSync('./hello.txt')console.log(data.toString())console.log('程序执行完毕') //hello world 程序执行完毕//非阻塞/异步var fs = require('fs')var data = fs.readFile('hello.txt', (err, data) => {    if (err) return console.error(err)    console.log(data.toString())})console.log('程序执行完毕') //程序执行完毕 hello world

转载于:https://my.oschina.net/startjcu/blog/3050629

你可能感兴趣的文章
urb传输的代码分析【转】
查看>>
ftrace 简介【转】
查看>>
内置函数总结
查看>>
模块的查找顺序
查看>>
LeetCode OJ:Ugly Number(丑数)
查看>>
wpf中ListBox的选中项与ComboBox间的绑定
查看>>
洛谷P1067 多项式输出
查看>>
web前台传参到后台出现错误
查看>>
数据库的备份和导入
查看>>
Oracle trunc()函数的用法
查看>>
col-md-*和col-sm-*
查看>>
前端开发大众手册(包括工具、网址、经验等)
查看>>
IOC容器
查看>>
python 中的 args,*args,**kwargs的区别
查看>>
1-Two Sum
查看>>
LeetCode 53. Maximum Subarray最大子序和 (C++)
查看>>
我的Python成长之路---第三天---Python基础(10)---2016年1月16日(雾霾)
查看>>
HBase学习1(hbase基础)
查看>>
java集合
查看>>
[洛谷P2147][SDOI2008]洞穴勘测
查看>>