Node.js学习笔记

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)

 

python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值