为了提供一些背景知识,我尝试为 AJV JSON 模式验证添加正确的模式验证错误消息格式(以粉饰验证错误)。我正在使用 Fastify 中间件。我的目的是根据我的功能要求将默认架构错误验证消息包装到我自己的消息中,以使其用户友好。
\n现在,当我使用 Fastify 时,我将其添加为我的插件的一部分,如下所示:
\nconst fastify = require('fastify')({\n ajv: {\n customOptions: { allErrors: true, jsonPointers: true },\n plugins: [\n require('ajv-merge-patch'),\n require('ajv-errors'),\n ]\n },\n requestIdHeader: 'x-service-request-id',\n requestIdLogLabel: 'requestId',\n genReqId: function (req) { return random.generate(10) }\n});\nRun Code Online (Sandbox Code Playgroud)\n我在用
\n\n\n"ajv-errors": "^3.0.0"\n"ajv-merge-patch": "^4.1.0",\n(两者都是来自 npm 的最新版本)
\n
现在我在纱线启动中收到此错误:
\n\xce\xbb yarn start\nyarn run v1.22.10\nwarning ..\\..\\..\\..\\package.json: No license field\n$ node src/server.js\nnode:internal/modules/cjs/loader:930\n throw err;\n ^\n\nError: Cannot find module 'ajv/dist/compile/codegen'\nRequire stack:\n- service-infra\\persistance\\node_modules\\ajv-errors\\dist\\index.js\n- service-infra\\persistance\\src\\server.js\n at Function.Module._resolveFilename (node:internal/modules/cjs/loader:927:15)\n at Function.Module._load …Run Code Online (Sandbox Code Playgroud) 在 PineScript v5 中,我试图制定一种策略,在下午 3:00(GMT+5:30 时区)之后我不打算进行任何交易。因此,如果当前时间小于下午 3:00,那么只有我会“进入”/“退出”交易。否则,我想在下午 3:00 退出所有未平仓头寸。
所以我尝试了这个:
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)")
if (hour(timenow) < endOfDay)
// Entry
float sl = na
if (sureBuyInTrend)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Long")
sl = atrLow
if (sureSellInTrend)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Short")
sl = atrHigh
// Exit: target or SL
longExitComment = (close < sl) ? "Long SL hit" : sureSellInTrend ? "Long target hit" : "Long close" …Run Code Online (Sandbox Code Playgroud)