nodejs初步感知

nodejs是javascript语言编写的一个后台,nodejs实现的是后台功能
nodejs安装
.msi格式文件,安装都是下一步
运行node的环境是命令行功能
开始->cmd
win +r
打开的命令功能默认是c盘下的用户盘符
命令行工具常用命令
1.切换盘符 c盘->d盘
2.进入文件夹:cd文件夹名字
3.退出文件夹:cd ../
4.查看文件:dir 运行:node
5.清空行命令:cls
6.创建文件夹:mkdir 文件夹名字
7.常用快捷键:
tab:自动补全
上下键:查看输入的历史记录
在指定文件夹中快速打开命令行工具:找到指定文件夹,在文件夹中shift加鼠标右键,在右键菜单中选‘在此打开命令行窗口’
定时关机:shutdown -s -t秒数
取消定时关机:shutdown-a
nodejs的基本知识:
1.体验nodejs
运行nodejs:在命令行工具中 node文件名
2.需要了解的知识
1.回调函数
nodejs所有的函数都是异步执行的,适合做高并发(成本比较低)。读取文件时回调函数中第一个参数是err,第二个桉树是请求成功的结果
2.事件
nodejs是事件驱动的,事件只要被提交就会自动进入事件队列中,事件队列会在时间循环中执行,当事件执行完成后,会执行这个事件的回调函数。
注册事件:on()
执行事件:emit()
3.buffer
buffer
缓冲器:专门用来处理二进制数据,js本身不能处理二进制,在后台有很多数据都是二进制,所以node.js定义了一个缓冲器定义了一个buffer专门处理二进制数据
4.stream
流数据:后台中有很多数据都是以流数据形式进行传递的,多以nodejs中也封装了处理流数据的类。
创建读取流:fs.createReadSream(path['options']);
创建写入流:fs.cteateReadsTream(path['options']);
5.模块
nodejs是依据ConnonJS编写的,符合CommonJS的规范,每个模块都是一个独立的功能,有独立的作用域,模块的导入导出也是符合CommonJS的
导入:require(模块名)
导出:module.exports
nodejs中有很多已经定义好的模块(http/fs/os/path/url)
这些模块都有自己的属性和方法,使用时需要查API
npm:
npm是按照nodejs是附带的一个工具,通过这个工具可以从npm官网下载程序。
npm命令:
查看版本:npm-v
初始化package:npm init
package.json是个文件,这个文件中会保存当前的程序(应用)
的基本信息、程序的运行命令、程序的依赖、浏览器的要求等等。
安装程序:npm install 程序名
全局安装:npm install -g 程序名
项目安装:npm install--save-dev 程序名
安装的程序会在 packag.json的 devDependencies出现,这个对象中的数据都是开发环境、生产环境下都需要的。
npm nstall--save 程序名
卸载程序:npm uninstall 程序名
淘宝镜像 npm install -g cnpm --registry= https://registry.npm.taobao.org
速度快,国内的,使用时把所有的npm换成cnpm
使用node_modules中的 程序时:
不需要加node_modeules文件夹的名字,直接使用程序名
express
express基于nodejs的一个web应用框架,搭建服务器,理由功能(实现接口),实现 实现连接数据库,对数据库进行增删改查操作等等。
使用express第一步:需要安装,npm进行安装,项目安装 npm install --save-dev express
第二步:需要把express引入项目,引入方式是通过require(‘express
’)
第三步:需要创建express的实例化对象 var app = express()
路由功能:(后台)
请求常用方式有两种:get请求、post请求
创建get请求:app.get(‘接口功能’,function(res,res){})
创建post请求:app.post('接口',function(res,req){})
检查路由功能:
使用工具:postMan
路由接收数据:
get请求:
第一种:url?uname=zhuhejin&uname2=shenzhongkang
获取前台通过这种形式传递的数据,需要使用nodejs中的一个基础模块
URL url.parse(urlString,true)
urlString:需要通过req.url来获取
中止传递的数据在url.parse()返回值在query属性中,query中的属性中,query中的值是对象形式的
第二种:url/xiaoming/18
知乎网携带数据形式就是这种 restful
获取restful数据参数:
第一步:需要在接口中配置
app.get('/boy/:uname/:age')
第二步:获取
app.get('.boy/uname/:age',function(req,res){
req.param(‘uname’)
})
post请求:
注意:在获取Post参数是需要额外引入一个组件body-parser,然后需要配置这个组件
第一种:req.body来获取
第二张:req.param 方法获取
配置解决跨域方法
app.all('*',function(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",'3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next()
});

猜你喜欢

转载自blog.csdn.net/amily8023/article/details/80573260