gpt4 book ai didi

JavaScript ES6 - 带有模板文字的 console.log

转载 作者:行者123 更新时间:2023-11-29 19:05:36 25 4
gpt4 key购买 nike

我正在编写连接到 mongo 数据库的节点脚本。

我注意到打印错误响应因 console.log 语法中的微小变化而有所不同。下面的例子应该更有意义。

#!/usr/bin/env node

const mongoose = require("mongoose");
const config = require("./config");

mongoose.connect(config.dbURI, (err) => {
if (err) {
console.log(`${err}`); // First console.log
console.log(err); // Second console.log
} else {
console.log(`Database connection successful`)
}
});

第一个 console.log 的示例输出

MongoError: Authentication failed.

第二个 console.log 的示例输出

{ MongoError: Authentication failed.
at Function.MongoError.create (/Users/sigo/Sources/crypto-change/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/sigo/Sources/crypto-change/node_modules/mongodb-core/lib/connection/pool.js:489:72
at authenticateStragglers (/Users/sigo/Sources/crypto-change/node_modules/mongodb-core/lib/connection/pool.js:435:16)
at Connection.messageHandler (/Users/sigo/Sources/crypto-change/node_modules/mongodb-core/lib/connection/pool.js:469:5)
at Socket.<anonymous> (/Users/sigo/Sources/crypto-change/node_modules/mongodb-core/lib/connection/connection.js:321:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at readableAddChunk (_stream_readable.js:178:18)
at Socket.Readable.push (_stream_readable.js:136:10)
at TCP.onread (net.js:563:20)
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
code: 18,
errmsg: 'Authentication failed.' }

这种差异从何而来?

最佳答案

${err}(或 '' + err 就此而言)将使用也会更改的字符串插入 err 对象你的Error对象转换为字符串 - 这相当于调用 err.toString() .然而,直接记录 err 会将其作为对象传递到控制台并以该方式显示。

这称为“隐式强制转换”——如果您想了解更多有关此主题的信息,我强烈建议您阅读 You Don't Know JS: Types & Grammar (Chapter 4: Coercion)进行深入研究。

关于JavaScript ES6 - 带有模板文字的 console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43122917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com