'use strict' const pino = require('../pino.js') const build = require('pino-abstract-transport') const loadTransportStreamBuilder = require('./transport-stream') // This file is not checked by the code coverage tool, // as it is not reliable. /* istanbul ignore file */ module.exports = async function ({ targets, levels, dedupe }) { targets = await Promise.all(targets.map(async (t) => { const fn = await loadTransportStreamBuilder(t.target) const stream = await fn(t.options) return { level: t.level, stream } })) return build(process, { parse: 'lines', metadata: true, close (err, cb) { let expected = 0 for (const transport of targets) { expected++ transport.stream.on('close', closeCb) transport.stream.end() } function closeCb () { if (--expected === 0) { cb(err) } } } }) function process (stream) { const multi = pino.multistream(targets, { levels, dedupe }) // TODO manage backpressure stream.on('data', function (chunk) { const { lastTime, lastMsg, lastObj, lastLevel } = this multi.lastLevel = lastLevel multi.lastTime = lastTime multi.lastMsg = lastMsg multi.lastObj = lastObj // TODO handle backpressure multi.write(chunk + '\n') }) } }
时间: 2023-06-10 17:06:36 浏览: 460
这是一个 Node.js 模块,用于创建一个基于 Pino 日志库的日志转发器。它使用了 Pino 的多流(multistream)功能,可以将日志同时输出到多个目标,比如文件、标准输出等。这个模块的主要工作是将传入的目标信息解析为合适的流,并将这些流传递给 Pino 的多流实例。同时,它还提供了处理流关闭事件的功能,以便在程序退出时能够正确地关闭所有流并执行回调函数。
相关问题
'use strict' require('./check-versions')() process.env.NODE_ENV = 'production' const ora = require('ora') const rm = require('rimraf') const path = require('path') const chalk = require('chalk') const webpack = require('webpack') const config = require('../config') const webpackConfig = require('./webpack.prod.conf') const spinner = ora('building for production...') spinner.start() rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { if (err) throw err webpack(webpackConfig, (err, stats) => { spinner.stop() if (err) throw err process.stdout.write(stats.toString({ colors: true, modules: false, children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. chunks: false, chunkModules: false }) + '\n\n') if (stats.hasErrors()) { console.log(chalk.red(' Build failed with errors.\n')) process.exit(1) } console.log(chalk.cyan(' Build complete.\n')) console.log(chalk.yellow( ' Tip: built files are meant to be served over an HTTP server.\n' + ' Opening index.html over file:// won\'t work.\n' )) }) })
这段代码是一个 Node.js 脚本,用于构建生产环境的前端代码。主要的执行步骤如下:
1. 引入必要的依赖模块,如 ora、rimraf、path、chalk、webpack 等。
2. 执行 check-versions.js 脚本,检查 Node.js 和 npm 的版本是否符合要求。
3. 设置环境变量 NODE_ENV 为 production。
4. 使用 ora 模块创建一个进度提示符号,提示正在构建生产环境的代码。
5. 删除之前构建的产物目录,即 config.build.assetsRoot 下的 config.build.assetsSubDirectory 目录。
6. 使用 webpack 模块根据 webpack.prod.conf.js 配置文件进行打包构建。
7. 打印构建结果到控制台,如果构建过程出现错误则抛出异常。
8. 根据构建结果判断构建是否成功,如果出现错误则输出错误信息并退出进程,否则输出构建成功信息和使用提示。
此代码'use strict'; // 云函数入口文件 const cloud = require('douyin-sdk') exports.main = async (event, context) => { console.log('event : ', event) const Tokin = event.queryStringParameters.Tokin; console.log('Tokin : ', Tokin) //通过appid和secret请求到抖音的 const result = await uniCloud.httpclient.request('https://developer.toutiao.com/api/v2/tags/text/antidirt',{ headers: { 'X-Token': Tokin, 'Content-Type': 'application/json', }, body: { tasks: [], content: '你好' }, // dataType: 'json' }); console.log("抖音用户openid:" + result.data) const resultt = JSON.parse(result.data) return { Tokin, resultt, } }; 显示方法不被允许 怎么解决
我不太了解你问的问题,但是我可以建议你尝试改变你的代码,以便它符合要求。例如,你可以检查你的代码是否正确使用了'strict'模式,检查你的请求头和body是否正确,以及检查是否正确使用了JSON.parse()函数等。
阅读全文