express 是什么?
安装express: cnpm install express
express 是一些开发基于nodejs的核心模块 http
模块进行额外的封装一个的一个 web 开发框架,使用 express 可以更加快速和方便开发web项目。
官网:https://www.expressjs.com.cn/
如何使用?https://www.expressjs.com.cn/starter/hello-world.html
Request 对象 :request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。
Response 对象 :response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据。
//1.引入express框架
const express = require('express');
//2. 创建express实例app 与http.createServer() 类似
const app = express();
const port = 3000;
//3. app请求方式(get post)
//请求方式(第一个参数,代表的url后面的路径部分,一般我们叫做 pathname) ?name=caoyang&age=12 一般我们把这种key=value&key1=value1叫做查询字符串
// #hash 这种一般我们叫做hash 或者锚点,一般用于本页面的跳转(小说网站)
app.get('/', (req, res) => {
// 1、write返回, 数据没有经过处理, 返回了什么就是什么,
//res.write('hi node.js!');
//2、如果服务器端没有数据返回到客户端 那么就可以用 res.end
//res.end();
//3、 如果 服务器端有数据返回到客户端 这个时候必须用res.send ,不能用 res.end
res.send('Hello World!');
//但是send 返回时, 数据被处理了, 在请求头中被添加了, context-type 返回类型,
// send 类似 http模块里面的wirte 方法,可以给浏览器进行响应,这个方法不是http模块自带的,是 express 作者帮我们封装的
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}!`)
})
总结:我们把这种请求方式+pathname形成的这种规则,我们称之为 路由。 多条规则形成的列表,我们称之为路由表。
静态文件
Express 提供了内置的中间件 express.static 来设置静态文件。
app.use('/public', express.static('public'));
nodemon 包:可以实现当我们修改了代码之后,不需要手工重启,即可显示最新的效果
npm install -g nodemon 工具包,全局安装
yarn global add nodemon
注意:yarn安装的时候,需要使用 global 关键字
注意:部门电脑的同学,安装全局包的时候,如果是启动普通黑窗口,有可能安装不成功,报一个类似 permission deny. 以超级管理员的方式启动黑窗口
如何使用?
只要把原先使用 node 的地方,换成 nodemon 即可
// node app.js —> nodemon app.js
请求文件:
const express = require('express');
const url = require('url');// 专门负责处理url部分
const path = require('path');
const app = express()
const port = 3000
app.get('/register', (req, res)=> {
// 注意:返回的文件需要使用绝对路径
//path.resolve() 方法会把一个路径或路径片段的序列解析为一个绝对路径。
let absPath = path.resolve(__dirname, './views/register.html');
res.sendFile(absPath, 'utf-8');
});
// 4. 监听端口
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
console.log(app);