gpt4 book ai didi

node.js - 没有 'new' 就不能调用类构造函数

转载 作者:IT老高 更新时间:2023-10-28 13:24:12 26 4
gpt4 key购买 nike

刚刚升级到 Node 4.1.2 并使用 Mongorito(使用 ES6)访问 Mongo,我得到了这个:

模型文件:

var Mongorito = require('mongorito');
var Model = Mongorito.Model;
var config = require('../config/config');
Mongorito.connect(config.mongo.url);

class Listing extends Model {}

module.exports = Listing;

我把它包括在内:

var Listing = require('../models/listing');
var listing = yield Listing.where('cacheKey', key).findOne();
TypeError: Class constructors cannot be invoked without 'new'
at Listing.Model (/node_modules/mongorito/lib/mongorito.js:140:15)
at new Listing (/models/listing.js:7:14)
at Query.find (/node_modules/mongorito/lib/query.js:355:21)
at [object Generator].next (native)
at onFulfilled (/node_modules/koa/node_modules/co/index.js:65:19)
at run (/node_modules/babel/node_modules/babel-core/node_modules/core-js/modules/es6.promise.js:89:39)
at /node_modules/babel/node_modules/babel-core/node_modules/core-js/modules/es6.promise.js:100:28
at flush (/node_modules/babel/node_modules/babel-core/node_modules/core-js/modules/$.microtask.js:17:13)
at doNTCallback0 (node.js:408:9)
at process._tickCallback (node.js:337:13)

最佳答案

这是因为 Babel 转译的 ES6 类不能用于扩展真正的 ES6 类。如果你想使用 mongorito,你必须将 Babel 的 es6.classes 转换加入黑名单,这样你的 Listing 类也是一个原生的 ES6 类。

关于node.js - 没有 'new' 就不能调用类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981988/

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