欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Node.js之Express框架

程序员文章站 2022-06-15 16:11:11
...

简介:

  • 可以设置中间件来响应HTTP请求
  • 定义了一个路由表用于执行不同的HTTP请求
  • 通过向模板传入参数动态进行渲染HTML界面

安装 npm install express --save

  • body-parser - node.js 中间件,用于处理JSON, Raw, Text和URL编码的数据。
  • cookie-parser 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
  • multer 用于处理enctype=“multipart/form-data”(设置表单的MIME编码)的表单数据。
$ npm install body-parser --save
$ npm install cookie-parser --save
$ npm install multer --save

实例: express框架实例

//Myexpress.js
 var express=require('express');
 var app=express();	
 app.get("/",function(req,res){
res.send('hello word');
})
var server=app.listen(6666,function(){
var host=server.address().address
var port=server.address().port
})

运行以上代码:控制台输出主机地址等,客户端浏览器输出 hello word

请求和响应:

function(req,res)
{
//request,response处理请求和响应的数据
}

Request对象 request表示HTTP请求,包含了查询字符串,参数,内容,HTTP头部等属性。

  • req.app:当callback为外部文件时,用req.app访问express的实例
  • req.baseUrl:获取路由当前安装的URL路径
  • req.body / req.cookies:获得「请求主体」/ Cookies
  • req.fresh / req.stale:判断请求是否还「新鲜」
  • req.hostname / req.ip:获取主机名和IP地址
  • req.originalUrl:获取原始请求URL
  • req.params:获取路由的parameters
  • req.path:获取请求路径
  • req.protocol:获取协议类型
  • req.query:获取URL的查询参数串
  • req.route:获取当前匹配的路由
  • req.subdomains:获取子域名
  • req.accpets():检查请求的Accept头的请求类型
  • req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages
  • req.get():获取指定的HTTP请求头
  • req.is():判断请求头Content-Type的MIME类型

Response 对象 - response对象表示HTTP响应,即在接收到请求时向客户端发送的HTTP响应数据。常见属性有:

  • res.app:同req.app一样

  • res.append():追加指定HTTP头

  • res.set()在res.append()后将重置之前设置的头

  • res.cookie(name,value [,option]):设置Cookie

  • opition: domain / expires / httpOnly / maxAge / path / secure / signed

  • res.clearCookie():清除Cookie

  • res.download():传送指定路径的文件

  • res.get():返回指定的HTTP头

  • res.json():传送JSON响应

  • res.jsonp():传送JSONP响应

  • res.location():只设置响应的Location HTTP头,不设置状态码或者close response

  • res.redirect():设置响应的Location HTTP头,并且设置状态码302
    res.send():传送HTTP响应

  • res.sendFile(path [,options] [,fn]):传送指定路径的文件 -会自动根据文件extension设定Content-Type

  • res.set():设置HTTP头,传入object可以一次设置多个头

  • res.status():设置HTTP状态码

  • res.type():设置Content-Type的MIME类型

路由

通过路由提取URL 以及GET和POST参数

var express=require('express');
var app=express();
app.get('/',function(req,res){
console.log("主页get请求");	
res.send("hello");
})
//post请求
var post('/',function(req,res){
res.send("hello post")
})
//对页面abcd ab12cd abbcd等响应
app.get('/ab*cd',function(req,res){
console.log('匹配以上各个界面')
})
//监听端口
var server=app.listen(8081,function(){
console.log('start to listen');
})