node 模块讲解(初级)

我们先来了解一下node.js

Node.js是一项服务器技术。我们都知道客户端提出服务请求,而服务器端负责处理请求并提供服务。而对于互联网来说,在Node.js之前JavaScript是一项完全的客户端技术,被用于浏览器中实现各种动画,对DOM的操作等等。而后端,即服务端则是由PHP、Python、Ruby、Java等等语言来实现。Node.js的出现,使得前后端使用同一种语言,统一模型的梦想得以实现。

初始化模块

npm init -y

常用的内置模块有

1、path模块 :用于处理文件路径。

path.normalize(路径解析,得到规范路径);
path.join(路径合并);
path.resolve(获取绝对路径);
path.relative(获取相对路径)

2、until模块 :弥补js功能不足,新增API。

util.format(格式化输出字符串);
util.isArray(检查是否为数组);
util.RegExp(是不是正则);
util.isDate(是不是日期型);
util.inherits(child,parent)实现继承;

3.fs模块:文件操作系统的API

fs.readFile(filename,[options],callback); 读取文件。
fs.writeFile(filename,data,[options],callback);写文件。
fs.appendFile(filename,data,[options],callback);以追加的方式写文件。
fs.open(filename,flags,[mode],callback); 打开文件。
filename:文件名,必须。
data:写入的数据或者buffer流。
flags:操作标识,打开方式,r w。
[options]:指定权限,读、写、执行。是否可续写。
callback:读取文件后的回调函数。function(err,data);

4、http模块

http.createServer(function(){});创建服务器。
http.get('路径',callback);发送get请求。
http.request(options,callback);发送请求。
options:options是一个类似关联数组的对象,表示请求的参数,callback作为回调函数,需要传递一个参数。
options常用的参数有host、port(默认为80)、method(默认为GET)、path(请求的相对于根的路径,默认是“/”。

常用的第三方模块
1.mysql模块

npm install mysql
var http = require("http");
var app = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("你好啊朋友");
});
app.listen(3000, "localhost");

上面代码的关键是http模块的createServer方法,表示生成一个HTTP服务器实例。该方法接受一个回调函数,该回调函数的参数,分别为代表HTTP请求和HTTP回应的request对象和response对象。

2.express模块

npm install express(安装指令)
var express = require('express');
var exp = express();
exp.get('/', function (req, res) {
  res.send('Hello world!');
});
exp.listen(3000);

express 与 http 的关系
其实 express是对http的封装,express 会在后台调用http模块。

express的特点

中间件(middleware)

简单说,中间件就是处理HTTP请求的函数。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。App实例在运行过程中,会调用一系列的中间件。
每个中间件可以从App实例,接收三个参数,依次为request对象(代表HTTP请求)、response对象(代表HTTP回应),next回调函数(代表下一个中间件)。每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将request对象再传给下一个中间件。

function zjj(request, response, next) {
  next();
}

use方法
use是express注册中间件的方法,它返回一个函数。

exp.use(function(request, response, next) {
  console.log(123);
  next();
});

exp.use(function(request, response) {
  response.writeHead(200, { "Content-Type": "text/plain" });
  response.end("你好呀朋友");
});

收到HTTP请求后,先调用第一个中间件,在控制台输出一行信息,然后通过next方法,传给第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以request对象就不再向后传递。

托管静态文件

exp.use(express.static('public'))
exp.use(express.static('files'))

关于express更多的特性就需要大家自己去查找了,今天就讲到这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值