express
express是什么?
-
express是Node.js的核心框架
-
express可以帮助我们快速构建web服务器 / api服务器
-
express提供了一个快速生成工具 express-generator
-
快速生成工具: 帮助我们快速创建一个项目的工具
express-generator安装
-
全局安装
$ npm i express-generator -g
$ cnpm i express-generator -g
$ yarn add express-generator global
-
如果你的npm版本 在 5.2+以上,那么你可以不使用全局安装,使用npx就可以了
格式:$ npx express 模板配置 项目名称
举例:$ npx express -e express_demo
解释:-e 指的是我们使用一个叫做ejs的模板 index.ejs 可以兼容html标签,可以书写js语法(php里面也可书写js语法)
项目目录结构
- bin
- www:启动了一个静态服务器( web服务器 )
- node_modules 整个项目的依赖包
- public:静态资源文件
- routes:路由文件夹
- view
- xxx.ejs:项目的模板
- app.js:整个项目的入口文件
- package.json:整个项目的依赖配置文件
express的快速开始
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
app.js文件代码解读
- app对象的功能
- 是为了使用一些具有特定功能的函数( 这些函数称作中间件 )
- 通过 app.use 来使用中间件
- 中间件分类
- 应用级中间价 cors
- 路由中间件 app.get( ‘/’, function ( req,res,next ) {})
- 错误处理中间件 function ( err , req,res,next ) {}
express 路由配置
let express=require('express')
let router=express.Router()
// 该路由使用的中间件
router.use((req,res,next)=>{
next()
});
// 定义网站主页的路由
router.post('/addFood', function(req, res) {
console.log('hahaha')
// res.send('这里是admin的登录');
});
// 定义 about 页面的路由
router.post('/regist', function(req, res) {
res.send('这里是admin的注册侧');
});
module.exports = router;
app.use('/admin',admin)
传递数据的获取
- get
- req.query
- post
- req.body
- body-parser
设置中文格式
res.set(‘Content-Type’,‘text/plain,charset=utf8’)
请求模拟工具:nsomina
静态资源配置
app.use(express.static('public'))
app.use('/static', express.static('public'))
app.use('/static', express.static(path.join(__dirname, 'public')))