我试图用一些类编写一个简单的节点脚本。 我首先定义一个类
export default class Checkout() {
constructor () {
console.log('checkout')
}
check() {
console.log('check')
}
}
然后我要使用它
>node
>repl
check = new Checkout()
Uncaught ReferenceError: Checkout is not defined
require('Checkout')
Uncaught Error: Cannot find module 'Checkout'
我该如何解决?我来自Ruby,控制台非常简单。
答案 0 :(得分:0)
在您require
或import
文件之前,文件中的代码不会包含在该文件之外的任何其他范围内。在需要/导入时,从文件中导出的对象的名称不会自动使用,您仍然必须指定它。
但是,您当前正在将require
(CommonJS模块格式)和export default
(ECMAScript模块格式)混合在一起。使用动态import()
的这些格式之间的互操作性非常有限,但是在Node REPL中尚不可用(公开问题here)。如果您需要在REPL中测试Checkout类,则只需切换到使用CommonJS:
module.exports = class Checkout() {
constructor () {
console.log('checkout')
}
check() {
console.log('check')
}
}
用法:
> Checkout = require('checkout.js')
> check = new Checkout()