Commit b9ec8199 by Sxy

feat: 改为 import

parent 815bd182
const Koa = require('koa')
import Koa from 'koa';
const app = new Koa()
const views = require('koa-views')
const json = require('koa-json')
const onerror = require('koa-onerror')
const bodyparser = require('koa-bodyparser')
const logger = require('koa-logger')
const parameter = require('koa-parameter')
const moment = require("moment")
const rabbmitmqUtil = require("./utils/rabbitmq");
import views from 'koa-views'
import json from 'koa-json'
import onerror from 'koa-onerror'
import bodyparser from 'koa-bodyparser'
import logger from 'koa-logger'
import parameter from 'koa-parameter'
import moment from "moment"
import rabbmitmqUtil from "./utils/rabbitmq"
rabbmitmqUtil.initQueue()
const correlation = require('./middleware/correlation');
const createNameSpace = require('cls-hooked').createNamespace;
const logNameSpace = createNameSpace('logger');
import correlation from './middleware/correlation'
import { createNamespace } from 'cls-hooked'
const index = require('./routes/index')
const test = require('./routes/test')
const logNameSpace = createNamespace('logger')
import index from './routes/index'
import test from './routes/test'
......
const amqp = require('amqplib');
const { MQ } = require("../settings")
const logger = require("../utils/logger")
import amqp from 'amqplib';
import settings from "../settings"
const { MQ } = settings
import logger from "../utils/logger"
class RabbitmqClient {
constructor() {
......@@ -31,7 +32,7 @@ class RabbitmqClient {
} catch (err) {
logger.info("--- MQ 连接 失败 ------");
logger.info(err);
throw new Error(err.message);
process.exit(1)
}
}
......@@ -83,4 +84,4 @@ class RabbitmqClient {
}
}
}
module.exports = new RabbitmqClient();
\ No newline at end of file
export default new RabbitmqClient();
\ No newline at end of file
const { v4: uuidv4 } = require('uuid');
import { v4 as uuidv4 } from 'uuid';
function correlation(namespace) {
return async (ctx, next) => {
......@@ -10,4 +10,4 @@ function correlation(namespace) {
}
}
module.exports = correlation;
\ No newline at end of file
export default correlation;
\ No newline at end of file
......@@ -3,9 +3,9 @@
"version": "0.1.0",
"private": true,
"scripts": {
"start": "node bin/www",
"dev": "./node_modules/.bin/nodemon bin/www",
"prd": "pm2 start bin/www",
"start": "node start",
"dev": "./node_modules/.bin/nodemon start",
"prd": "pm2 start start",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
......@@ -30,6 +30,10 @@
"winston-daily-rotate-file": "^4.5.5"
},
"devDependencies": {
"@babel/core": "^7.14.8",
"@babel/plugin-transform-runtime": "^7.14.5",
"@babel/preset-env": "^7.14.8",
"@babel/register": "^7.14.5",
"nodemon": "^1.19.1"
}
}
}
\ No newline at end of file
const router = require('koa-router')()
const { sendDelayMessage, sendRetryMessage } = require("../utils/rabbitmq")
const { ok, error } = require("../utils/system")
import Router from 'koa-router'
const router = Router()
import { sendDelayMessage, sendRetryMessage } from "../utils/rabbitmq"
import { ok, error } from "../utils/system"
router.get('/', async (ctx, next) => {
await ctx.render('index')
})
......
const router = require('koa-router')()
import Router from 'koa-router'
const router = Router()
router.get('/test/error', async (ctx, next) => {
ctx.body = {
......
module.exports = {
export default {
MQ: {
protocol: 'amqp',
hostname: '192.168.18.102',
......
// Transpile all code following this line with babel and use '@babel/preset-env' (aka ES6) preset.
require("@babel/register")({
presets: ["@babel/preset-env"],
"plugins": [
[
"@babel/plugin-transform-runtime"
]
]
});
// Import the rest of our application.
module.exports = require('./bin/www')
\ No newline at end of file
const axios = require("axios");
const { v4: uuidv4 } = require('uuid');
import axios from "axios"
import { v4 as uuidv4 } from 'uuid'
/**
* 请求参数 要求
* url
......@@ -15,7 +15,7 @@ const { v4: uuidv4 } = require('uuid');
* data 成功时具体返回值,失败时为 null
* message 成功时返回 null ,失败时返回具体错误消息
*/
async function request(message) {
export async function request(message) {
try {
const { url, method = "POST", headers = {}, params = {}, data = {}, timeout = 5 } = message;
const response = await axios({
......@@ -34,11 +34,6 @@ async function request(message) {
throw new Error(response.data.message)
}
} catch (err) {
console.log(err.message);
throw new Error(err.message);
}
}
module.exports = {
request
}
\ No newline at end of file
const { createLogger, format, transports } = require('winston');
const getNamespace = require('cls-hooked').getNamespace;
import { createLogger, format, transports } from 'winston';
import { getNamespace } from 'cls-hooked';
const myFormat = format.printf(({ level, message, timestamp }) => {
const loggerNamespace = getNamespace('logger');
return `[${timestamp}] [${level}] ${loggerNamespace.get('requestId') ? ("[" + loggerNamespace.get('requestId') + "] :") : ''} ${message}`;
......@@ -22,4 +22,4 @@ const logger = createLogger({
],
});
module.exports = logger;
\ No newline at end of file
export default logger;
\ No newline at end of file
const rabbitmqClient = require("../client/rabbitmq");
import rabbitmqClient from "../client/rabbitmq";
import settings from "../settings"
const {
PREFETCH,
LADDERDELAYOPTIONSL: {
......@@ -15,15 +16,14 @@ const {
delayQueue,
delayRoutingKey
}
} = require("../settings")
} = settings;
import { v4 as uuidv4 } from 'uuid';
const { v4: uuidv4 } = require('uuid');
import { request } from "./axios";
const { request } = require("./axios");
import logger from "../utils/logger"
const logger = require("../utils/logger")
const getNamespace = require('cls-hooked').getNamespace;
import { getNamespace } from 'cls-hooked';
/**
* 重试机制
......@@ -101,14 +101,19 @@ async function listenCustomerLadderQueue() {
* 3. 将消息状态改为 已发送到mq
*/
async function sendRetryMessage(message, queue = consumerQueue) {
const logNameSpace = getNamespace('logger');
message.headers["X-Request-Id"] = logNameSpace.get("requestId");
if (!message.messageId) {
message.messageId = uuidv4();
}
if (!message.retryCount) {
message.retryCount = 0;
}
if (!message.headers) {
message.headers = {}
}
if (!message.headers["X-Request-Id"]) {
const logNameSpace = getNamespace('logger');
message.headers["X-Request-Id"] = logNameSpace.get("requestId") || uuidv4();
}
const channel = await rabbitmqClient.getConfirmChannel();
await channel.sendToQueue(queue, Buffer.from(JSON.stringify(message)), {
persistent: true, // 持久化 消息
......@@ -179,14 +184,16 @@ async function listenCustomerQueue() {
* 3. 将消息状态改为 已发送到mq
*/
async function sendDelayMessage(message) {
const logNameSpace = getNamespace('logger');
if (!message.messageId) {
message.messageId = uuidv4();
}
if (!message.headers) {
message.headers = {}
}
message.headers["X-Request-Id"] = logNameSpace.get("requestId");
if (!message.headers["X-Request-Id"]) {
const logNameSpace = getNamespace('logger');
message.headers["X-Request-Id"] = logNameSpace.get("requestId") || uuidv4();
}
const channel = await rabbitmqClient.getConfirmChannel();
await channel.publish(delayExchange, delayRoutingKey, Buffer.from(JSON.stringify(message)), {
persistent: true, // 持久化 消息
......
const getNamespace = require('cls-hooked').getNamespace;
const logNameSpace = getNamespace('logger');
import { getNamespace } from 'cls-hooked';
const ok = (data) => {
export const ok = (data) => {
const logNameSpace = getNamespace('logger');
return {
code: 0,
success: true,
......@@ -11,7 +12,9 @@ const ok = (data) => {
requestId: logNameSpace.get("requestId"),
}
}
const error = (msg = "未知错误", code = -1) => {
export const error = (msg = "未知错误", code = -1) => {
const logNameSpace = getNamespace('logger');
return {
code,
success: false,
......@@ -19,9 +22,4 @@ const error = (msg = "未知错误", code = -1) => {
data: null,
requestId: logNameSpace.get("requestId"),
}
}
module.exports = {
ok,
error
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment