我试着学习节点。js(ES6)但在require
这是我的结构:
BaseModel.js
"use strict";
class BaseModel {
constructor(options = {}, data = []) { // class constructor
this.name = 'Base'
this.url = 'http://azat.co/api'
this.data = data
this.options = options
}
getName() { // class method
console.log(`Class name: ${this.name}`)
}
}
会计模型。js
"use strict";
require('./baseModel.js');
class AccountModel extends BaseModel {
constructor(options, data) {
super({private: true}, ['32113123123', '524214691']) //call the parent method with super
this.name += 'Account Model'
this.url +='/accounts/'
}
get accountsData() { //calculated attribute getter
// ... make XHR
return this.data
}
}
主要的js
"use strict";
require('./AccountModel.js');
let accounts = new AccountModel(5)
accounts.getName()
console.log('Data is %s', accounts.accountsData);
现在我运行:node——harmony默认参数main。js
和获取错误:
ReferenceError:对象上未定义BaseModel。(/Users/tamirscherzer/POC/projects/NodeJS/tutorials/classes/AccountModel.js:5:28)在模块中_在对象处编译(module.js:397:26)。模块_扩展。。js(module.js:404:10)在模块中。在函数处加载(module.js:343:32)。模块_在模块处加载(module.js:300:12)。require(module.js:353:17)at require(internal/module.js:12:17)at对象。模块中的(/Users/tamirscherzer/POC/projects/NodeJS/tutorials/classes/main.js:5:1)_在对象处编译(module.js:397:26)。模块_扩展。。js(module.js:404:10)
真奇怪,如果我更改require('./baseModel.js')
到另一个名字,我得到错误,文件找不到,所以路径写正确。
还定义了权限
777
-同样的事情,BaseModel没有定义
有什么想法吗?
当您在节点中定义变量时,它不会像在浏览器中一样添加到全局范围-它是该文件/模块的本地变量。因此,您不能简单地导入一个文件并期望您在其中定义的内容可用——您必须显式地导出和导入它们。
基本模型。js:
class BaseModel {
constructor(options = {}, data = []) { // class constructor
this.name = 'Base'
this.url = 'http://azat.co/api'
this.data = data
this.options = options
}
getName() { // class method
console.log(`Class name: ${this.name}`)
}
}
module.exports = BaseModel;
会计odel.js:
"use strict";
let BaseModel = require('./baseModel.js');
class AccountModel extends BaseModel {
constructor(options, data) {
super({private: true}, ['32113123123', '524214691']) //call the parent method with super
this.name += 'Account Model'
this.url +='/accounts/'
}
get accountsData() { //calculated attribute getter
// ... make XHR
return this.data
}
}
module.exports = AccountModel;
main.js:
"use strict";
let AccountModel = require('./AccountModel.js');
let accounts = new AccountModel(5)
accounts.getName()
console.log('Data is %s', accounts.accountsData);
我刚安装了node。js。我试着编写node-v来检查版本,但它不起作用。这是输出: 我用git命令打开了它: 我试着用“Git”运行它,我想也许这就是问题所在,我得到了完全相同的输出。 如果相关的话,我使用的是windows 8-一直遵循本教程: https://www.youtube.com/watch?v=tlntE8fe6u4 http://youtu.be/FqMIyTH9wSg 我该怎
我已经启动了一个节点。使用express generator的js应用程序,我遇到了一个奇怪的问题,无法通过浏览器查看页面两次,第一次加载正常,第二次加载不正常,因为节点进程以以下错误结束: 包裹json
当我运行命令我得到以下错误:- 我谷歌了一下,尝试了很多东西,都没有成功。
问题内容: 使用节点8.4.0: 但是,以下错误也不是交互式的:(唯一的区别是分号) 同样在Chrome控制台中: 有人可以解释吗? 澄清度 这与按预期工作的let,var或cosnt解构无关。这与先前定义的变量(或非严格模式)有关:从chrome控制台: 问题答案: 将对象分解为现有变量的正确语法是 这允许成为一种表达。否则,将其解释为带有逗号运算符的块,这将导致错误。 它在控制台中不带括号和分
我正在尝试创建一个简单的地址簿, 但它会打印错误 .../通讯录。js:8这个。联络。推(接触)^ TypeError:无法读取地址簿上未定义的属性“push”。在对象上添加联系人(/home/maku/Documents/epicodus/addressBook.js:8:19)。(/home/maku/Documents/epicodus/addressBook.js:25:13)在模块中_在