什么是 Express?
Express 是 Node.js 的一个 Web 框架,它提供了一系列工具和方法来实现 Web 应用开发的重复任务。使用 Express 可以快速启动和运行 Node.js Web 应用,并且非常适合构建 Rest API 应用及中小型网站。
起步
安装 Express
使用 npm 命令安装 Express,可以全局或本地安装,这里介绍本地安装:
npm install express --save
创建项目
在本地新建一个目录,作为项目的根目录,进入该目录并创建 package.json 文件:
npm init -y
创建服务器
新建 app.js 文件,使用 Express 创建一个服务器:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ---- - ----- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- --------- -- --------------------------- ---
在命令行中运行以下命令启动服务器:
node app.js
在浏览器中打开 http://localhost:3000
,可以看到输出结果:Hello World!
路由
使用路由可以在 Web 应用中定义和处理不同的 URL,Express 提供了多种路由方式。
基础路由
定义基础路由,使用 get() 方法:
app.get('/', (req, res) => { res.send('Hello World!'); });
这里,定义了一个 GET 请求处理器,将响应 Hello World! 发送给浏览器。
路由参数
可以在路由路径中添加参数,在处理器函数中使用 req.params
获取参数值:
app.get('/user/:id', (req, res) => { res.send(`User ID: ${req.params.id}`); });
在浏览器中访问 http://localhost:3000/user/123
,可以看到输出结果:User ID: 123。
POST 路由
处理 POST 请求需要使用 post() 方法:
app.post('/', (req, res) => { res.send('Got a POST request'); });
PUT 路由
处理 PUT 请求需要使用 put() 方法:
app.put('/user', (req, res) => { res.send('Got a PUT request at /user'); });
DELETE 路由
处理 DELETE 请求需要使用 delete() 方法:
app.delete('/user', (req, res) => { res.send('Got a DELETE request at /user'); });
请求处理
Express 提供了多个内置中间件来处理请求,这里介绍两种常见中间件方式。
静态文件中间件
使用 express.static()
中间件处理静态文件,例如 css、js、image 等。
app.use(express.static('public'));
这里假设将静态文件存放在 public 目录下,使用 app.use()
挂载中间件。
解析请求体中间件
使用 body-parser
中间件解析请求体:
const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false }));
在请求处理器中,可以使用 req.body
引用表单提交的数据。
模板引擎
Express 支持多个模板引擎,例如 Pug、EJS、Handlebars 等。
这里使用 Handlebars 模板引擎作为例子:
安装模板引擎
使用 npm 命令安装模板引擎:
npm install express-handlebars --save
配置模板引擎
在 app.js 中配置模板引擎:
const exphbs = require('express-handlebars'); app.engine('handlebars', exphbs()); app.set('view engine', 'handlebars');
创建视图
在 views 目录中创建视图文件,例如:views/home.handlebars。
渲染视图
使用 res.render()
方法渲染视图:
app.get('/home', (req, res) => { res.render('home', { title: 'Home Page' }); });
这里,将查询构建到 views/home.handlebars,同时传递 title 参数进行渲染。
总结
Express 是一种超级实用的 Web 框架,能够帮助我们快速启动和开发 Node.js Web 应用,本篇文章介绍了 Express 的基础使用,了解了 Express 的基本概念和 API,可以尝试进行更复杂的开发和功能扩展。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64969cfc48841e98943d0db1