Articles of 属性

console.log中的%j说明符排除了一些属性

我最近试图在node.js加载bson (二进制JSON)模块。 API文档不清楚,所以我认为检查对象会帮助我。 检查结果令人困惑。 最后我发现这是因为我正在使用“谎言”的%j它不会打印所有对象的字典键! (我使用Python的术语“属性”作为引用的点,而“字典键”用括号引用的东西,因为我不知道这些东西在JS中的正确名称。 这里是一个例子: var bson = require("bson"); console.log("bson as %%j: %j", bson); console.log("bson as console.log: ", bson); 这里是输出: bson as %j: {"BSONPure":{},"BSONNative":{}} bson as console.log: { BSONPure: { Code: [Function: Code], Symbol: [Function: Symbol], BSON: { [Function: BSON] BSON_INT32_MAX: 2147483647, BSON_INT32_MIN: -2147483648, BSON_INT64_MAX: 9223372036854776000, BSON_INT64_MIN: -9223372036854776000, … 我以为x.key与x["key"]是一样的,这意味着JS中的属性和字典键是“同一件事物”。 我在实验后发现BSON.BSONPure是{} ,然而BSON.BSONPure.BSON和BSON.BSONPure["BSON"]是一个function对象! 这使我相信,无论"%j"做什么,都必须排除一些密钥。 […]

使用gmail的Nodemailer,无法在string“SMTP”上创build属性“邮件程序”

我试图从我创build的forms发送到我的Gmail帐户的数据,当点击sumbitbutton,我总是得到相同的错误。 我发现了很多关于nodemailer的问题,但是没有一个和我遇到的问题一样。 当然,我已经说明了我的clientId,但刚删除这个职位。 TypeError: Cannot create property 'mailer' on string 'SMTP' at Mail (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\mailer\index.js:45:33) at Object.module.exports.createTransport (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\nodemailer.js:46:14) at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\src\app.js:39:26 at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5) at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:277:22 at Function.process_params (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:271:10) at serveStatic (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\node_modules\serve-static\index.js:75:16) at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:312:13) at […]

我怎样才能得到console.log输出的getter结果,而不是string“”?

在这个代码中: function Cls() { this._id = 0; Object.defineProperty(this, 'id', { get: function() { return this._id; }, set: function(id) { this._id = id; }, enumerable: true }); }; var obj = new Cls(); obj.id = 123; console.log(obj); console.log(obj.id); 我想得到{_id:123,id:123},但是我得到{_id:123,id:[Getter / Setter]} 有没有办法让getter的值被console.log函数使用?