Node.js学习笔记

本文探讨了Node.js的基本概念及其在前端开发中的重要性,介绍了http、url、fs等核心模块的使用方法,以及如何处理GET和POST请求数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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')

 

  1. try-catch 只能捕获同步异常,不能捕获异步异常

模块化:

export

exports.start = start;

  1. request 对象:<http.IncomingMessage>

request.headers

request.rawHeaders 请求报文头

request.httpVersion 

request.method 

request.url  //打印请求的url域名后的信息

  1. 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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值