前端Node的实用方法

Posted Mzs-Qsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端Node的实用方法相关的知识,希望对你有一定的参考价值。

Node

一、什么是Node

Node是以基于Chrome V8引擎的javascript运行环境,使用了一个事件驱动、非阻塞式I/O模型(I/O是 input/output的缩写,即输入输出端口,在传统的编程模式中,I/O操作阻塞了代码的执行,极大的降低了程序的效率),Node的出现让JavaScript 运行在服务端的开发平台,具有相当重要的意义

二、初识Node

1、路径

node通过ch切换路径到文件路径,node的工作路径如果不切换会导致操作的失败d:可以切换盘符,通过ch切换到工作文件

2、命令获取路径

在Node中,可以通过node命令来获取相对路径

*__dirname: 可以获取到当前js文件所属的目录的绝对路径.*

*__filename: 可以获取当前js文件的绝对路径.*

3、引入内置path模块

const fs = require(\'fs\');
const path = require(\'path\');
const fullPath =  path.join(__dirname, \'/data\');
console.log(fullPath);
fs.writeFile(fullPath, \'么么哒!\', \'utf-8\', err=>{
    if(err) return console.log(err);
    console.log(\'yes yyds!!!\');
});

4、Buffer

因为JavaScript语言自身只有字符串数据类型,没有二进制数据类型,但在处理TCP流或文件流时必须使用二进制数据,所以Node.js定义了一个专门存放二进制数据的缓存区Buffer,在读取文件时,返回data数据时Buffer类型,所以需要转换为字符串

fs.readFile(\'./data/1.txt\',(err, data) => {
    if(err){
        return console.log(\'读取发生错误:\'+err);
    }
   
    console.log( data.toString());
});

三、http模块

http的简单图解

image-20210525212009055

const http = require(\'http\');
//创建1个服务
const server = http.createServer((request, response) => {
    response.end(\'Hello, Node.js!\');
});
//监听服务
server.listen(3000, () => console.log(\'服务启动成功\'));

1、示例-获取URL读取文件的内容

const http = require(\'http\');
const fs = require(\'fs\');
const path = require(\'path\');

const server =  http.createServer((req, res) => {
    //1.将url 和 method 转换为小写
    req.url = req.url.toLowerCase();
    req.method = req.method.toLowerCase();
   
    const fullPath = path.join(__dirname, \'www\', req.url);
   
    fs.readFile(fullPath, (err, data) => {
        if(err){
            //读取文件发生错误了. 路径错了.
            res.statusCode = 404;
            res.end();
        }else{
            res.end(data);
        }
    }); 
});
server.listen(80, ()=>console.log(\'服务正在监听\'));

2、createServer的回调

1.执行时机:只要有来自客户端的HTTP请求,这个函数就会被执行

2.回调函数的两个参数

req对象,客户端向服务端发的数据都被封装在req对象中

req.url  可以获取请求时候的url及其参数
req.method  可以获取客户端请求服务端的方法,post/delete/put/patch/head等

res对象,客户端响应给服务端的数据全部被封装在其中,

res.setHeader(),响应数据新增响应头,通过Content-Type可以返回指定数据的类型

3、请求分为两部分

请求头,键值对,作用是告诉浏览器一些关键的信息

请求体,发给服务器的数据

4、响应分为两部分

响应头 键值对 作用: 浏览器会根据响应头中的数据可能会做出一些处理.

响应体 服务器真正返回给浏览器的数据. 浏览器会解析响应体中的数据.

响应数据
res.write() 向响应体中写入数据
res.end(); 结束响应写入的数据.

5、常见状态码

常见状态码:
200:  服务器处理请求成功
201:  处理成功 并且创建了新的资源
400:  浏览器发送给服务器的数据有问题,  一般都是参数传递错误.
      127.0.0.1/api/joke?num=10
401:  身份验证过期.或者没有验证.
403:  权限不足.
404:  资源不存在.
500:  服务器内部发生错误.

四、npm使用

1、初始化

npm init -y //保存了初始化项目的信息
package.json
其中dependencies: 记录了我们下载的插件和版本.
其中scripts属性.
我们可以将一些常用的命令保存在 package.json中的scripts属性中,
npm run xxx; 就可以执行对应的命令.(webstorm不需要,

以上是关于前端Node的实用方法的主要内容,如果未能解决你的问题,请参考以下文章

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

BootStrap实用代码片段(持续总结)

Android 实用代码片段

Android 实用代码片段

值得网页设计师&前端收藏的实用工具列表

基于requirejs+bluebird,50行代码实现轻巧实用的前端CMD加载器