资讯专栏INFORMATION COLUMN

使用express来代理服务

LuDongWei / 3432人阅读

摘要:和都可以反向代理,解决跨域问题。本地服务如果它在最前面,后面的开头的都会被拦截静态资源静态资源中间件,每个请求都会经过失败中间件,请求错误后都会经过与配合使用这样就将其它服务器的请求代理过来了使用监听本地文件变化使用插件。

nodejs和nginx都可以反向代理,解决跨域问题。

本地服务

</>复制代码

  1. const express = require("express")
  2. const app = express()
  3. //如果它在最前面,后面的/开头的都会被拦截
  4. app.get("/", (req, res) => res.send("Hello World!"))
  5. app.use(express.static("public"));//静态资源
  6. app.use("/dist", express.static(path.join(__dirname, "public")));//静态资源
  7. //404
  8. app.use("/test", function (req, res, next) {
  9. res.status(404).send("Sorry can"t find that!");
  10. });
  11. app.use(function (req, res, next) {
  12. //TODO 中间件,每个请求都会经过
  13. next();
  14. });
  15. app.use(function (err, req, res, next) {
  16. //TODO 失败中间件,请求错误后都会经过
  17. console.error(err.stack);
  18. res.status(500).send("Something broke!");
  19. next();
  20. });
  21. app.listen(4000, () => console.log("Example app listening on port 4000!"))
与request配合使用

这样就将其它服务器的请求代理过来了

</>复制代码

  1. const request = require("request");
  2. app.use("/base/", function (req, res) {
  3. let url = "http://localhost:3000/base" + req.url;
  4. req.pipe(request(url)).pipe(res);
  5. });
使用http-proxy-middleware

</>复制代码

  1. const http_proxy = require("http-proxy-middleware");
  2. const proxy = {
  3. "/tarsier-dcv/": {
  4. target: "http://192.168.1.190:1661"
  5. },
  6. "/base/": {
  7. target: "http://localhost:8088",
  8. pathRewrite: {"^/base": "/debug/base"}
  9. }
  10. };
  11. for (let key in proxy) {
  12. app.use(key, http_proxy(proxy[key]));
  13. }
监听本地文件变化

使用nodemon插件。
--watch test指监听根目录下test文件夹的所有文件,有变化就会重启服务。

</>复制代码

  1. "scripts": {
  2. "server": "nodemon --watch build --watch test src/server.js"
  3. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104876.html

相关文章

  • Express 实战(一):概览

    摘要:一个标准性的事件就是年的横空出世。引擎快速处理能力和异步编程风格,让开发者从多线程中解脱了出来。其次,通过异步编程范式将其高并发的能力发挥的淋漓尽致。它也仅仅是一个处理请求并作出响应的函数,并无任何特殊之处。 showImg(https://segmentfault.com/img/remote/1460000010819116); 在正式学习 Express 内容之前,我们有必要从大...

    zhaochunqi 评论0 收藏0
  • Express 实战(六):构建 API 接口

    摘要:状态码的正确使用。解析请求获取随机数范围并将生产的结果以格式返回。在代码的最后,我们会在合法的参数返回内生成随机数并将结果返回给客户端。虽然示例很简单,但是它已经包含了使用构建的基本流程解析请求,设置状态码,返回响应数据。 showImg(https://segmentfault.com/img/remote/1460000010820713); 在介绍了那么多 Express 核心概...

    AnthonyHan 评论0 收藏0
  • 使用Express搭建一个简单的服务

    摘要:框架应用程序是一个保持最小规模的灵活的应用程序开发框架,为和移动应用程序提供一组强大的功能。路由基本使用下载新建一个文件,然后输入然后运行打开就出现请求和响应应用使用回调函数的参数和对象来处理请求和响应的数据。 Express框架 Web 应用程序 Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。 AP...

    gghyoo 评论0 收藏0
  • Express.js之路(1)

    摘要:什么是它是一个基于平台,快速开放极简的开发框架。在中就是一个重点。这让我们更加注重业务的功能和开发效率。项目运行我们利用框架可以减少我们的代码量,比起之前使用的核心模块构建服务器代码排版更直观。 什么是Express.js? 它是一个基于Node.js平台,快速、开放、极简的web开发框架。在Express中就是一个重点:API。这让我们更加注重业务的功能和开发效率。 如何使用Expr...

    HitenDev 评论0 收藏0
  • Node图文教程(第四章:express

    摘要:中文官网快速入门安装项目中引入得到服务器实例绑定服务器接受请求事件,并且添加处理回调函数绑定服务端口,启动服务器运行项目利用框架可以减少我们的代码量,比起之前使用核心模块构建服务器代码排版更直观。Express框架是一款简洁而灵活的node.js web应用框架。前面我们自己手动创建服务器在Express中就是一个API的事情,这就使得我们更加注重业务的功能和开发效率上,不必纠结过多底层的事...

    韩冰 评论0 收藏0
  • Express.js 中的 Sessions 如何工作?(译)

    世界上任何一个拥有用户数据的 web 应用都必须处理 sessions。作为一名开发者,我们必须要知道它们是什么以及如何处理它们。在这篇文章中,我想要分享的是: session 是什么? session 如何存储数据? 你如何决定存放 session 数据的位置? 在 sessions 工作时,你必须意识到的安全性上的影响有哪些?在一些示例代码中,我将会运用 session npm modul...

    Hydrogen 评论0 收藏0

发表评论

0条评论

LuDongWei

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<