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

济南网站建设哪家公司好丰台网站建设公司电话

济南网站建设哪家公司好,丰台网站建设公司电话,广州注册公司需要多少钱,企业策划公司一、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/63512.html

相关文章:

  • 网站服务器租赁多少钱团队做网站分工
  • 郑州网站开发网站开发怎样做网站底部导航
  • 上海微信小程序网站建设网站建设意见征求
  • 网站建设公司平台新网站怎么运营
  • 电商网站建设注意如何苗木网站建设
  • 昊诺网站建设网络推广潢川微信网站建设
  • 基于php网站开发的参考文献手机app设计网站
  • 专业科技公司网站欣赏智慧团建网页手机版官网
  • 东莞网站建设网站制作公司有网页源码 怎么做网站
  • 新手用什么程序建网站公司网站域名和空间使用费
  • 网站开发的项目流程图自己的ip做网站
  • 高校网站建设及管理制度动漫网站建设毕业设计
  • 花都网站推广网页制作教程步骤
  • 如何查询网站注册信息安阳流调报告
  • 2003访问网站提示输入用户名密码东营百度推广公司
  • 网站开发视频转码大学校园门户网站建设
  • 企业如何实现高端网站建设化妆品网站做的好的
  • 响应式中文网站模板手机浏览器网页加速器
  • 北京好用的h5建站网页设计课程的总结
  • 做展厅的网站网站域名列表
  • 南通企业网站建设公司做搜狗手机网站
  • 如何做网站子页个人做网站郊游的英
  • 紫金网站制作重庆建企业网站
  • 和国外做贸易用什么网站数学 wordpress
  • 文章网站后台管理系统wordpress音乐播放主题
  • 外贸网站建设科技wordpress评论提醒插件
  • 思明建设局网站成都网站建设潮州
  • 太原网站制作建设郑州网站制作公司哪家好
  • dw做旅游网站模板下载眉山网站建设公司
  • 商城网站开发网站运营部门职责