Nodejs KOA服务搭建打包

Nodejs KOA服务搭建打包

koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

const Koa = require("koa");
const fs = require("fs");
const Router = require("koa-router");
const cors = require("koa2-cors");
const proxy = require("koa-proxies");
const bodyParser = require("koa-bodyparser");
const app = new Koa();
const router = new Router();

router.get("/", async (ctx, next) => {
  // 1. 配置为静态资源服务访问demo spa
  const text = await new Promise(function (resolve, reject) {
    fs.readFile(__dirname + "/index.html", function (err, data) {
      if (err) reject("error");
      else resolve(data.toString());
    });
  });
  ctx.body = text;
});

// 2. 配置api路由,并返回 json数据
router.get("/get", async (ctx) => {
  console.log("/get", ctx);
  ctx.body = {
    sites: [
      { name: "菜鸟教程", url: "www.runoob.com" },
      { name: "google", url: "www.google.com" },
      { name: "微博", url: "www.weibo.com" },
    ],
  };
});

// 3. 配置代理
app.use(
  proxy("/api/health", {
    target: "https://hotel-international.fast-cn.wgine.com/health",
    changeOrigin: true,
  })
);
app.use(bodyParser());
// x-response-time
app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  ctx.set("X-Response-Time", `${ms}ms`);
});

// logger
app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}`);
});

app.use(cors());
app.use(router.routes()).use(router.allowedMethods());
app.listen(8888);

编写dockerfile,将包含demo spa、koa服务的代码 打包到docker,在本地启动访问

# dockerfile内容:
FROM node:latest
RUN mkdir -p /home/www/koa
WORKDIR /home/www/koa
COPY . /home/www/koa
RUN npm install
EXPOSE 8888
CMD ["node","server.js"]

输入命令镜像打包和容器生成

docker image build ./ -t docker-test:1.0.3
docker container create -p 3002:8888 docker-test:1.0.3
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是基于 Node.js 的 WebSocket 服务器的搭建步骤: 1. 首先,你需要安装 Node.js,可以在官网下载安装包进行安装。 2. 创建一个新的目录作为你的项目文件夹,在该目录下打开命令行工具,输入以下命令来初始化一个新的 Node.js 项目: ``` npm init ``` 3. 安装 `ws` 模块,这是一个流行的 WebSocket 库: ``` npm install ws --save ``` 4. 在你的项目文件夹中创建一个新的 JavaScript 文件,例如 `server.js`,并打开该文件。 5. 在 `server.js` 中导入 `ws` 模块,并创建一个 WebSocket 服务器的实例: ```javascript const WebSocket = require('ws'); const server = new WebSocket.Server({ port: 8080 }); ``` 这将创建一个 WebSocket 服务器实例,监听本地机器上的 8080 端口。 6. 添加事件监听器,以便在连接建立、断开或收到新消息时执行相应的操作。例如: ```javascript server.on('connection', function connection(ws) { console.log('Client connected'); ws.on('message', function incoming(data) { console.log(`Received message: ${data}`); }); ws.on('close', function close() { console.log('Client disconnected'); }); }); ``` 这会监听 WebSocket 服务器上的 `connection` 事件,并在客户端连接时输出一条消息。同时,它还会监听 `message` 和 `close` 事件,以便在客户端发送消息或断开连接时执行相应的操作。 7. 启动服务器。在命令行中运行以下命令: ``` node server.js ``` 这会启动 WebSocket 服务器。 现在,你已经成功地创建了一个基于 Node.js 的 WebSocket 服务器,可以通过 WebSocket 协议与客户端进行通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值