当前位置: 首页 > news >正文

济南网站建设是什么1122t

济南网站建设是什么,1122t,门户网站建站,免费域名注册登录1. 介绍 Express 是一个基于 Node.js 的 Web 应用程序框架#xff0c;主要用于快速、简便地构建 Web 应用程序 和 API。它是目前最流行的 Node.js Web 框架之一#xff0c;具有轻量级、灵活和功能丰富的特点。 核心概念包括路由#xff0c;中间件#xff0c;请求与响应主要用于快速、简便地构建 Web 应用程序 和 API。它是目前最流行的 Node.js Web 框架之一具有轻量级、灵活和功能丰富的特点。 核心概念包括路由中间件请求与响应以及模板引擎支持 2. Express应用的使用 通过npm进行安装express包 npm install express示例以下是一个最简单的Express应用程序 const express require(express); const app express();// 路由处理 GET 请求 app.get(/, (req, res) {res.send(Hello, Express!); });// 路由处理动态参数 app.get(/user/:id, (req, res) {res.send(User ID: ${req.params.id}); });// 启动服务器 const PORT 3000; app.listen(PORT, () {console.log(Server is running on http://localhost:${PORT}); });3. 应用程序对象 Express的核心负责注册路由和中间件。 使用express()函数创建一个Express应用程序的实例。 const app express();4. 路由 Express提供了灵活的路由机制用于定义应用如何响应客户端的请求 get请求 用于从服务器获取资源例如网页、数据请求参数通常附加在URL的查询字符串中适用于获取数据或无敏感信息的请求 const express require(express); const app express();app.get(/, (req, res) {res.send(欢迎访问首页); });// 带查询参数的 GET 请求 app.get(/search, (req, res) {const query req.query; // 获取查询参数res.send(搜索内容${query.keyword}); });app.listen(3000, () console.log(服务器运行在 http://localhost:3000));访问方式直接在浏览器地址栏输入即可 http://localhost:3000/search?keywordexpress request对象中包含了与HTTP请求相关的信息例如请求头URL参数等信息 属性描述req.params包含动态路由中的参数格式为对象。例如/user/:idreq.params.id 获取 id 参数req.query包含查询字符串参数格式为对象。例如?nameJohnreq.query.name 获取 name 参数req.body包含 POST 请求的请求体数据需要中间件解析如 express.json() 或 express.urlencoded()req.headers包含 HTTP 请求头信息格式为对象。req.headers包含 HTTP 请求头信息格式为对象req.methodHTTP 请求的方法例如GET、POST、PUT、DELETE 等req.url请求的完整 URLreq.path请求的路径部分不包括查询字符串req.hostname请求的主机名不包括端口号req.ip客户端的 IP 地址 示例简易的查找返回 const express require(express) const file require(./test.json) const app express();app.get(/singer/:id.html,(req,res){let {id} req.params;let result file.find(item{if (item.id Number(id)){return true;}})if (!result){res.statusCode404;renderBlock.end(h1404 NOT FOUNDh1);return;} }) post请求 post请求则是用于向服务器提交数据例如表单数据JSON数据通常会改变服务器上的数据例如添加修改或删除资源等操作 !DOCTYPE html htmlhead/headbodyform methodpost actionhttp://127.0.0.1:3000/submittextarea placeholder输入用户名/textareabutton登录/button/from/body /html const express require(express); const app express();app.use(express.json()); // 解析 JSON 格式的请求体 app.use(express.urlencoded({ extended: true })); // 解析 URL 编码的请求体// POST 路由 app.post(/submit, (req, res) {const body req.body; // 获取请求体数据res.send(提交的数据${JSON.stringify(body)}); });app.listen(3000, () console.log(服务器运行在 http://localhost:3000));response包含了与HTTP响应相关的方法和属性用于向客户端返回数据 方法描述res.send(body)发送响应数据可以是字符串对象Buffer等res.json(body)发送 JSON 格式的响应res.status(code)设置响应状态码例如res.status(404)res.redirect(url)重定向到指定 URLres.render(view, data)渲染视图模板并发送响应需要配置模板引擎res.set(header, value)设置响应头res.cookie(name, value)设置 Cookie需要 cookie-parser 中间件res.clearCookie(name)清除指定的 Cookieres.type(type)设置content-type响应头res.sendFile()返回服务器中的文件res.end()结束响应但不发送数据 Response对象常见操作 跳转响应 app.get(/other,(req,res){res.redirect(http://www.baidu.com)}) 下载响应 app.get(/other,(req,res){res.download(__dirname/package.json)}) JSON响应 app.get(/other,(req,res){res.json({name:Ricardo})}) 响应文件内容 用于展示HTML文件等信息 app.get(/other,(req,res){res.sendFile(__dirname/test.html)}) 4. express中间件 中间件Middleware 是 Express 中处理请求和响应的核心机制。它是一个函数用于处理请求对象 (req)、响应对象 (res)以及在请求-响应周期中执行后续中间件的 next 方法在路由处理之前或者之后执行。 简单来讲中间件可以拦截请求、执行某些操作然后决定是否将请求传递给下一个中间件它们可以用来处理日志记录、认证、数据解析、错误处理等任务。 中间件的基本形式 function middleware(req, res, next) {// 中间件逻辑next(); // 调用 next() 将请求传递给下一个中间件 }4.1 全局中间件 每一个请求到达服务器之后都会执行全局中间件函数直接绑定到应用对象app上作用域所有或指定的路由 const express require(express); const path require(path); const fs require(fs);const app express();// 声明中间件函数 function recordMiddleware(req, res, next) {let { url, ip } req;fs.appendFileSync(path.resolve(__dirname, ./access.log),${url} ${ip}\r\n);next(); // 必须调用 next() 将请求传递给后续中间件或路由 }// 使用中间件 app.use(recordMiddleware);app.get(/home, (req, res) {res.send(Hello express); });app.get(/admin, (req, res) {res.send(后台); });// 处理 404 请求 app.all(*, (req, res) {res.send(h1404 NOT FOUND/h1); });// 启动服务器 app.listen(3000, () {console.log(The server started on port 3000); }); 4.2 专有/路由级中间件 与路由绑定仅作用于特定路由 function recordMiddleware(req, res, next) {let { url, ip } req;fs.appendFileSync(path.resolve(__dirname, ./access.log),${url} ${ip}\r\n);next(); // 必须调用 next() 将请求传递给后续中间件或路由 }app.get(/home, recordMiddleware,(req, res) {res.send(Hello express); }); 需要在中间件中声明next才会进一步执行之后回调函数的内容 4.3 静态资源/内置中间件 app.use(express.static(__dirname/public)); 根据在public文件夹下的路径即可访问对应的文件 如果public目录下有index.html文件单独有index.html路由的话根目录代码/书写谁在前显示谁 中间件描述安装express.json()解析 JSON 格式请求体内置express.urlencoded()解析 URL 编码请求体如表单数据内置express.static()提供静态文件服务内置morgan记录 HTTP 请求日志需要安装cookie-parser解析请求中的 Cookie需要安装cors处理跨域请求需要安装helmet提高应用安全性需要安装body-parser解析请求体数据功能与 express.json() 类似需要安装express-session管理会话需要安装 示例中间件获取解析请求参数 首先准备好我们的表单界面与服务端 !DOCTYPE html htmlhead/headbodyform actionhttp://127.0.0.1:3000/login methodpost用户名:input typetext nameusernamebr密码:input typepassword namepasswordbrbutton登录/button/form/body /html const express require(express)const app express();app.get(/login,(req,res){res.sendFile(__dirname/form.html) })app.post(/login,(req,res){res.send(获取用户的数据) })app.listen(3000,(){console.log(server is running...) }) nameJohnage25表单所返回的数据如上述所示我们需要在服务器端获取上述表单内容需要使用到中间件  使用中间件解析post请求所获得的数据 const urlencodedParser express.urlencoded({ extended: false }); 使用中间件 app.post(/login,urlencodedParser,(req,res){console.log(req.body)res.send(获取用户的数据) }) 解析后的数据存放在req中body属性中解析的内容以对象的形式进行保存 { name: John, age: 25 }示例防盗链 防止其他网站对资源进行访问通过header请求头中refer所实现 app.use((req,res,next){let referer req.get(referer);if (referer){let url new URL(referer);let hostname url.hostname; //获取站点信息if (hostname ! 127.0.0.1){res.status(404).send(h1404 NOT FOUND/h1)} } }) 注意事项 1. 中间件顺序很重要中间件按照定义顺序执行。 2. 确保调用next()如果不调用后续中间件将不会执行。 5. 路由器Router 定义路由器级别的路由用于为某一组路由逻辑进行模块化管理即创建“迷你应用”。 它的作用范围是局部的绑定在特定的 Router 实例上。 反之使用app.get用于处理直接挂载到整个应用程序上的 HTTP GET 请求作用范围是全局的绑定在整个 Express 应用实例上。 const express require(express); const app express(); const router express.Router();router.get(/about, (req, res) res.send(关于页面)); router.get(/contact, (req, res) res.send(联系我们));app.use(/info, router); // 将路由器挂载到 /info 路径app.listen(3000);最终访问路由 3000/info/about 6. 路由模块化 单独创建一个文件夹用于存储不同作用的路由文件 // ./routes/网站首页.js const express require(express)const router express()router.get(/home,(req,res){res.send(网站首页) })module.exports router; 模块化进行声明导出方便在主文件中进行使用 - 在主文件中配置路由使用use挂载即可 // ./主文件.jsconst express require(express); const router require(./route/home.js)const app express();app.use(router);app.all(*,(req,res){res.send(h1404 NOT FOUNDh1) })app.listen(3000,(){console.log(This server has been started) })
http://www.w-s-a.com/news/866111/

相关文章:

  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten
  • 马鞍山建设工程监督站建管处网站免费的海报模板网站
  • 类似百度的网站移动端的网站怎么做的
  • 网站开发需要什么文凭网站分析的优劣势
  • 海尔网站建设不足之处山东网站营销
  • 楚雄 网站建设广告设计一般人能学吗
  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径
  • 怎么做网站h汉狮企业网站营销的实现方式
  • 新津县建设局网站怎么做区块链网站
  • 网站设计与制作是什么专业广州优化网站
  • 腾讯有做淘宝客网站吗网站开发包