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

成都h5模板建站番禺市桥网站建设公司

成都h5模板建站,番禺市桥网站建设公司,最好看免费观看高清大全城中之城,国外最大的设计网站有哪些方面一、express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架#xff0c; 官方网站#xff1a; Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 中文文档#xff1a; 路由 - Express 中文文档 简单来说 官方网站 Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 中文文档 路由 - Express 中文文档 简单来说 express 是一个封装好的工具包封装了很多功能便于我们开发 WEB 应用 HTTP 服务 二、express 使用 2.1 express 下载 express 本身是一个 npm 包所以可以通过 npm 安装 npm init npm i express --save 2.2 express 基本使用 1、基础代码 //1. 导入 express const express require(express);//2. 创建应用对象 const app express();//3. 创建路由规则 app.get(/home, (req, res) {res.end(hello express server); });//4. 监听端口 启动服务 app.listen(3000, () {console.log(服务已经启动, 端口监听为 3000...); }); 2. 命令行下执行该脚本 node 文件名 # 或者 nodemon 文件名 3. 然后在浏览器就可以访问 http://127.0.0.1:3000/home 2.3 获取请求参数 express 框架封装了一些 API 来方便获取请求报文中的数据并且兼容原生 HTTP 模块的获取方法 //导入 express const express require(express); //创建应用对象 const app express(); //获取请求的路由规则 app.get(/hh, (req, res) { //1. 获取报文的方式与原生 HTTP 获取方式是兼容的console.log(请求方法, req.method); //获取请求方法console.log(请求路径, req.url); //获取请求路径console.log(协议版本, req.httpVersion); // 获取协议版本console.log(请求头, req.headers); // 获取请求头//express 操作console.log(路径, req.path); //获取请求路径console.log(请求参数, req.query); //获取请求参数//获取 ipconsole.log(请求设备的地址, req.ip); //获取请求设备的地址//获取请求头console.log(请求请求头, req.get(host)); res.send(请求报文的获取); }); //启动服务 app.listen(3000, () { console.log(启动成功....) }) 控制台打印如下 2.4 获取路由参数 路由参数指的是 URL 路径中的参数数据 router.get(/users/:userId/books/:bookId, function (req, res, next) {//获取 URL 路由参数console.log(URL 路由参数, req.params);res.setHeader(content-type, text/html;charsetutf-8);res.send({ h: hello }); }); 控制台打印如下 三、express 响应设置 express 框架封装了一些 API 来方便给客户端响应数据并且兼容原生 HTTP 模块的获取方式 router.get(/response, function (req, res, next) {//1. express 中设置响应的方式兼容 HTTP 模块的方式res.statusCode 404;res.statusMessage xxx;res.setHeader(abc, xyz);res.write(响应体);// res.end(xxx);//2. express 的响应方法// res.status(500); //设置响应状态码// res.set(xxx, yyy); //设置响应头// res.send(中文响应不乱码); //设置响应体//连贯操作// res.status(404).set(xxx, yyy).send(你好朋友);//3. 其他响应// res.redirect(https://www.baidu.com/); //重定向// res.download(./package.json); //下载响应// res.json(); //响应 JSONres.send({ h: hello }); }); 四、express 中间件 4.1 什么是中间件 中间件 Middleware 本质是一个回调函数 中间件函数 可以像路由回调一样访问 请求对象 request 响应对象 response 4.2 中间件的作用 中间件的作用 就是 使用函数封装公共操作简化代码 4.3 中间件的类型 全局中间件 路由中间件 4.3.1 定义全局中间件 每一个请求 到达服务端之后 都会执行全局中间件函数 声明中间件函数 /*** 记录每个请求的 url 与 IP 地址*/ //导入 express const express require(express); const fs require(fs); const path require(path);//创建应用对象 const app express();//声明中间件函数 名字自定义 function recordMiddleware(req, res, next) {// res 接受请求报文的对象// res 接受响应报文的对象// next 会指向后续的中间件函数或者路由回调//获取 url 和 iplet { url, ip } req;//将信息保存在文件中 access.logfs.appendFileSync(path.resolve(__dirname, ./access.log),${url} ${ip}\r\n);//调用 nextnext(); }//使用中间件函数 app.use(recordMiddleware);//创建路由 app.get(/home, (req, res) {res.send(前台首页); });app.get(/admin, (req, res) {res.send(后台首页); });app.all(*, (req, res) {res.send(h1404 Not Found/h1); });//监听端口, 启动服务 app.listen(3000, () {console.log(服务已经启动, 端口 3000 正在监听中....); });应用中间件 app.use(recordMiddleware); 4.3.2 定义路由中间件 如果 只需要对某一些路由进行功能封装 则就需要路由中间件 调用格式如下 app.get(/路径,中间件函数,(request,response){ }); app.get(/路径,中间件函数1,中间件函数2,(request,response){ }); 使用 //声明中间件 let checkCodeMiddleware (req, res, next) {//判断 URL 中是否 code 参数等于 521if (req.query.code 521) {next();} else {res.send(暗号错误);} }; router.get(/kkl, checkCodeMiddleware, function (req, res, next) {res.send({ h: hello }); }); 4.4 静态资源中间件 //引入express框架 const express require(express); //创建服务对象 const app express(); //静态资源中间件的设置将当前文件夹下的public目录作为网站的根目录 app.use(express.static(./public)); //当然这个目录中都是一些静态资源 //如果访问的内容经常变化还是需要设置路由 //但是在这里有一个问题如果public目录下有index.html文件单独也有index.html的路由 //则谁书写在前优先执行谁 app.get(/index.html,(request,response){ respsonse.send(首页); }); //监听端口 app.listen(3000,(){ console.log(3000 端口启动....); }); 注意事项: 1. index.html 文件为默认打开的资源 2. 如果静态资源与路由规则同时匹配谁先匹配谁就响应 3. 路由响应动态资源静态资源中间件响应静态资源 4.5 获取请求体数据 body-parser 官网body-parser - npm express 可以使用 body - parser 包处理请求体 npm i body-parser --save 第二步导入 body-parser 包 const bodyParser require(body-parser); 第三步获取中间件函数 //处理 querystring 格式的请求体 let urlParser bodyParser.urlencoded({extended:false})); //处理 JSON 格式的请求体 let jsonParser bodyParser.json(); 第四步设置路由中间件然后使用 request.body 来获取请求体数据 app.post(/login, urlParser, (request,response){ //获取请求体数据 //console.log(request.body); //用户名 console.log(request.body.username); //密码 console.log(request.body.userpass); response.send(获取请求体数据); }); 获取到的请求体数据 const bodyParser require(body-parser); //解析 JSON 格式的请求体的中间件 // const jsonParser bodyParser.json()//解析 querystring 格式请求体的中间件 const urlencodedParser bodyParser.urlencoded({ extended: false }); router.get(/dd, urlencodedParser, function (req, res, next) {// 当中间件urlencodedParser 执行完之后它会向res 添加一个参数名字为 body,里面有请体的参数console.log(req.body);res.send({ h: hello }); }); 五、Router 5.1 什么是 Router express 中的 Router 是一个完整的中间件和路由系统可以看做是一个小型的 app 对象。 5.2 Router 作用 对路由进行模块化更好的管理路由 5.3 Router 使用 创建独立的 JS 文件 homeRouter.js //1. 导入 express const express require(express); //2. 创建路由器对象 const router express.Router(); //3. 在 router 对象身上添加路由 router.get(/, (req, res) { res.send(首页); }) router.get(/cart, (req, res) { res.send(购物车); }); //4. 暴露 module.exports router; 主文件 const express require(express); const app express(); //5.引入子路由文件 const homeRouter require(./routes/homeRouter); //6.设置和使用中间件 app.use(homeRouter); app.listen(3000,(){ console.log(3000 端口启动....); }) 六、防盗链 6.1 什么是防盗链 就是禁止别人引用自己网站的资源保护自己网站的资源或者减少服务器压力比如图片的引用 6.2 使用 // 防盗链的使用 使用中间件 const stopHttp (req, res, next) {//检测请求头中的 referer 是否为 127.0.0.1//获取 refererlet referer req.get(referer);if (referer) {//实例化let url new URL(referer);//获取 hostnamelet hostname url.hostname;//判断if (hostname ! 127.0.0.1) {//响应 404res.status(404).send(h1404 Not Found/h1);return;}}next(); }; router.get(/cc, stopHttp, function (req, res, next) {// 只许可 网站 127.0.0.1 访问该资源res.send({ h: hello }); });
http://www.dnsts.com.cn/news/97342.html

相关文章:

  • 网站网络推广教程诸城市房产信息网
  • 网站权重一直做不上去阿里云申请域名
  • 网站系统解决方案在北京注册公司有什么好处
  • 网站设计分享网站建设谈判
  • vs和dw做网站的区别商务网站建设策划书范文
  • 手机上建设网站晋城市建设局网站
  • 网站接入地淘宝api 做网站
  • 淘客导购网站怎么做利用google地图标注做网站
  • 网页设计网站世界杯网上学做网站
  • 网站建设比较合理的流程是做网站需要考虑哪些
  • 微网站 html做盗版电影网站犯法吗
  • 微信上优惠券的网站怎么做的dw软件怎么用
  • 织梦网站开发视频教程唐山制作网站公司
  • 免费做销售网站有哪些那些网站是php开发的
  • 自己怎么建网站卖东西成都中高风险地区名单
  • 网站怎么用ftp修改网页内容可建网站
  • html网站开发图片素材重庆网约车
  • 有哪些网站可以做设计比赛个人做网络推广哪个网站好
  • 烟台做网站优化哪家好博客可以放自己做的网站
  • 潍坊建站公司网站后台更新了 前台不现实
  • 江苏网站建设建网页还是网站
  • dede打包好的网站怎么提取模板李沧网站建设谁家好
  • 用花生壳做网站信融营销型网站建设
  • 成都网站优化师制作人韩剧结局
  • 商业网站 模板网站制作 代码
  • 太原网站建设策划方案vs2017 网站开发环境
  • 长春市网站制作怎么做网站链接的快捷方式
  • 石景山富阳网站建设捕鱼网站开发
  • 网站后台作用深圳app开发公司前十名
  • dw做网站怎么加视频国内免费素材网站