node.js 慢慢的已经成为前端开发必须掌握的技术,仿佛不会node.js 都不好意思说自己是前端,本篇文章就和大家讨论一下node.js 是什么以及普通的语法,算是一个基本的入门
node.js是什么?
概念:node.js不是一门语言,而是js的一个运行环境
特性:事件驱动、非阻塞I/O
作用:实现现代真正意义的前后端分离,帮助前端人员有更大的操作空间
首先让我学习几个Node 公共模块:
http、url、fs、mime、querystring
1. fs: 文件操作模块
fs.writeFile(‘filePath’,’String/buffer’,function(err){
})
fs.readFile(‘filePath’,function(err,data){
})
注:__dirname 获取当前server路径
2. url: 顾名思义,url处理模块
url.parse(urlString,boolean,boolean)
parse这个方法可以将一个url的字符串解析并返回一个url的对象
参数:urlString指传入一个url地址的字符串
第二个参数(可省)传入一个布尔值,默认为false,为true时,返回的url对象中,query的属性为一个对象。
第三个参数(可省)传入一个布尔值,默认为false,为true时,额,我也不知道有什么不同,可以去看看API。
url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash");
2 /*
3 返回值:
4 {
5 protocol: 'http:',
6 slashes: true,
7 auth: 'user:pass',
8 host: 'host.com:8080',
9 port: '8080',
10 hostname: 'host.com',
11 hash: '#hash',
12 search: '?query=string',
13 query: 'query=string',
14 pathname: '/p/a/t/h',
15 path: '/p/a/t/h?query=string',
16 href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
17 }
18 没有设置第二个参数为true时,query属性为一个字符串
3. mime:根据路径后缀获取“Content-Type”的值
mime.getType('filePath')
4. querystring
var querystring = require(‘querystring’)
querystring.parese(buffer) // 把post请求发送的字符串转换为json对象
1 querystring.parse("name=whitemu&sex=man&sex=women");
2 /*
3 return:
4 { name: 'whitemu', sex: [ 'man', 'women' ] }
5 */
6 querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
7 /*
8 return:
9 { name: 'whitemu', sex: 'man' }
10 */
var http = require(‘http')
-
try-catch 只能捕获同步异常,不能捕获异步异常
模块化:
export
exports.start = start;
- request 对象:<http.IncomingMessage>
request.headers
request.rawHeaders 请求报文头
request.httpVersion
request.method
request.url //打印请求的url域名后的信息
- response对象
response.wirte(’String/buffer’,’utf-8’,function(res){
})
response.end 通知服务器,所有的请求都完成
response.statusCode 设置响应状态码
response.statusMessage 设置响应状态
response.setHeader(‘Content-Type’,’text/plain')
response.writeHead(404,’not found’,{‘Content-Type’:’text/plain;’charset=uft-8''})
模块:modules : 通过require 才叫模块
包:package 必须有一个package.json才能叫一个包、
package.json 文件:包描述文件、项目描述文件
元数据:表述自身的数据
创建package.json : npm init/npm init -y
Node.js 获取用户通过get方式提交的数据,需要用到url模块
var obj = url.prase(‘filePath’,true)
浏览器:重定向,设置响应报文头
res.statusCode(302)
res.statusMessage(found)
res.setHeader(‘Location’,’/path’)
服务器端获取用户post提交的数据
监听requsst对象的data事件 和监听 request的end事件
request.on(‘data’,function(){
})
Buffer.concat(array)
本文探讨了Node.js的基本概念及其在前端开发中的重要性,介绍了http、url、fs等核心模块的使用方法,以及如何处理GET和POST请求数据。
315

被折叠的 条评论
为什么被折叠?



