Express Web框架

Express Web框架

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能

Express框架的核心是对NodeJs中http模块的再包装,在http基础上增加了很多中间件来完善http开发流程。

什么是中间件

一个请求发送到服务器要经历监听请求-解析请求-响应请求,服务器在处理这一过程的时候,将这些复杂的业务拆开成一个个子部分,子部分就是一个个中间件。对于处理请求来说,在响应发出之前,可以对请求和该级响应做一些操作,并且可以将这个处理结果传递给下一个处理步骤

一、安装

npm install express --save

使用

const express = require('express')

const app = express()

const port = 3000

app.get('/',(req,res)=>{
    res.send('Home Page')
})

app.get('/user',(req,res)=>{
    res.send('User Page')
})

app.listen(port,()=>console.log("服务启动了"))

二、use方法

use是express注册中间件的方法,它接收一个函数作为参数,这个参数通过use注册成为一个中间件会在后续的业务中不断被调用

var express = require("express");
var http = require("http");

var app = express();

app.use(function(request, response, next) {
  console.log("这是一个普通的log中间件");
  next();
});

app.use(function(request, response) {
  response.writeHead(200, { "Content-Type": "text/plain" });
  response.end("Hello world!\n");
});

http.createServer(app).listen(3000);

三、HTTP动词方法

HTTP动词方法指的是http请求的不同方式,比如getpoetputdelete

除了指定的动词方法还有一个all方法,表示所有请求都必须通过该中间件,参数中的“*”表示对所有路径有效

get方法只针对get请求有效

var express = require("express");
var http = require("http");
var app = express();

app.all("*", function(request, response, next) {
  response.writeHead(200, { "Content-Type": "text/plain" });
  next();
});

app.get("/", function(request, response) {
  response.end("Welcome to the homepage!");
});

app.get("/about", function(request, response) {
  response.end("Welcome to the about page!");
});

app.get("*", function(request, response) {
  response.end("404!");
});

http.createServer(app).listen(3000);

这些方法的第一个参数,都是请求的路径。除了绝对匹配以外,Express允许模式匹配

四、set方法

app.set用于指定变量的值

app.set('title', 'Tina');
app.get('title');
// => "Tina"

五、response对象

  • res.status(code) 设定请求状态值
  • **res.set(field, [value]) **设置响应头字段field 值为 value, 也可以一次传入一个对象设置多个值
  • res.get(field) 获取响应头里的 field的值
  • res.charset 设置字符集。默认为"utf-8"
  • res.send([body|status], [body]) 发送一个响应
  • res.render(view, [locals], callback) 渲染view, 同时向callback 传入渲染后的字符串
  • res.redirect 网址的重定向
  • res.sendFile(path, [options]) 发送文件(需要options内设定相对路径)

六、requst对象

  • req.ip 获取ip地址
  • req.params 获取params参数
  • req.query 获取query参数
  • req.body 获取请求体
  • req.files 获取上传的文件对象
  • req.get(field) 获取请求头里的field的值
  • req.path 获取请求的URL的路径名
  • req.host 获取请求的URL的主机名,不包含端口号

七、连接数据库

安装mysql依赖

npm install mysql --save-dev

创建链接

var $mysql   = require("mysql");
const mysql = {
    host: "localhost", //这是数据库的地址
    user: "root", //需要用户的名字
    password: "123456", //用户密码 ,如果你没有密码,直接双引号就是
    database: "test" //数据库名字
}
//创建一个连接
var $sql = $mysql.createConnection(mysql)     //链接数据库      
$sql.connect()  

//查询
$sql.query('select id from user',function(error, results, fields){
    if (error) throw error;
    console.log('查询结果: ', results);
}
posted @ 2023-02-08 14:00  郑大勇  阅读(47)  评论(0编辑  收藏  举报