express
简介:
Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。
功能及应用
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
可以设置中间件来响应 HTTP 请求。
定义了路由表用于执行不同的 HTTP 请求动作。
可以通过向模板传递参数来动态渲染 HTML 页面。
express的静态
1.导入express模块
const express = require("express");
2.创建服务器
const app = express();
3.静态资源托管(如下图所示)
app.use(expresss.static("static"))
app.use(expresss.static("public"))
4.开启监听
app.listen(4399) 括号里是端口号,可自定义,但不可省略
静态express应用
路由的使用
介绍
路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等) 组成的,涉及到应用如何响应客户端对某个网站节点的访问
他有两种方式:get 和post
使用之前先要创建服务器(app),如静态步骤
get语法:
app.get("网址(根据需求自定义)",(req,res) =>{
根据需求写代码
})
**注意:**使用get的方式和获取参数,获取不到,是因为他不是在url传数据
post语法:
app.post("网址(根据需求自定义)",(req,res) =>{
根据需求写代码
})
路由的应用
1.导入express模块
const express = require(“express”);
querystring 模块提供用于解析和格式化 URL 查询字符串的实用工具
const querystring = require("querystring ");
2.创建服务器
const app = express();
3.get
app.get("/search",(req,res) =>{
console.log(req);
console.log(req.query);
res.send("/search")
})
post
app.post("/add",(req,res) => {
注意:使用get的方式和获取参数,获取不到,是因为他不是在url传数据
console.log(req);
console.log(req.query);
var str = "";
req.on("data",data => {
str += data;
})
req.on("end", () => {
console.log(str);
var data = querystring.parse(str)
console.log(data);
})
res.send("/add");
})
4.开启监听
app.listen(4399) 括号里是端口号,可自定义,但不可省略
最后在页面调用这些接口即可,但在之前,最好先测试一下这个接口有没有问题,避免后续问题
中间件
注册中间件:app.use(bodyParse.urlencoded({ extend : false}))
在注册之前,还必须要倒入包
const bodyParser = require("body-parser");
中间件使用
无论怎能改,1,2,4步必写,但要按照需求增加和改变
第一步:导入所需要的包
第二步:创建服务器
第三步:注册中间件
第四步:监听
注册中间件:
第一步:导入所需要的包
var express = require('express');
第二步:创建服务器
var app = express();
第三步:注册中间件
app.use(function(req,res,next){
console.log('go');
继续执行下一个中间件里面的回调函数
如果去掉next方法,那么 服务器的响应就会终止
下面的也就不会运行了
next()
})
app.use(function(req,res,next){
console.log('吃饭');
req.query.caiMing = "土豆炒洋葱";fffo;f
console.log(req.query);
next()
})
第四步:监听
app.listen(3000)
注意点:
req是请求对象
注册了很多个中间件 里面的req对象都是同一个
那么res 响应对象 也是同一个
next 是继续往下执行下一个如果没有,那么就只会找到最后一次出现的next哪里
module
定义:模块(Module)是一种把方法、类和常量组合在一起的方式。
优点:模块提供了一个命名空间和避免名字冲突。
模块常量命名:与类常量命名类似,以大写字母开头。方法定义看起来也相似:模块方法定义与类方法定义类似。
module.export
module.exports 对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,module.exports 提供了暴露接口的方法。
下面是代码:
模块A:
var name = "新兰永恒"
const sayHi = function(){
console.log("hello");
}
module.exports = {
age : 12,
jump(){
console.log("pppp");
},
name,
sayHi
}
模块B:
const moduleA = require("./moduleA")
module.exports = function(){
console.log("他长得真真帅");
}
使用:
const moduleA = require("./moduleA");
const moduleB = require("./moduleB");
// console.log(moduleA);
console.log(name);
console.log(moduleA.age); 12
moduleA.jump(); pppp
moduleA.sayHi(); hello
console.log(moduleB); [Function]
moduleB(); 他长得真真帅