Javascript Nodejs从其他文件引用类对象

Javascript Nodejs从其他文件引用类对象,javascript,node.js,alexa,alexa-skills-kit,Javascript,Node.js,Alexa,Alexa Skills Kit,我现在正在学习nodejs,我想知道如何引用在其他文件中创建的对象 例如: 我有一个类为user.js的文件,我正在导出该文件 module.exports = class Username { constructor(name, lastProjects) { this.current.name = name; this.current.lastProjects = lastProjects; } }; name.handler.js我无法将其导出到该订单文件中

我现在正在学习nodejs,我想知道如何引用在其他文件中创建的对象

例如: 我有一个类为user.js的文件,我正在导出该文件

module.exports = class Username {

  constructor(name, lastProjects) {
    this.current.name = name;
    this.current.lastProjects = lastProjects;
  }

};
name.handler.js我无法将其导出到该订单文件中

const Alexa = require('alexa-sdk');
const User = require('../models/user.model');
module.exports = Alexa.CreateStateHandler(StatesConst.NAME, {
  'NewSession': function () {
    this.emit('NewSession'); // Uses the handler in newSessionHandlers
  },
  'MyNameIsIntent': function() {
    var user = new User.Username("Anna", ["project1", "project2"]);
    this.emit(':ask', "Hi "+User.Username.name);
    }
    }
user.handler.js我完全不知道如何编写对新创建的对象用户名的引用

const Alexa = require('alexa-sdk');
const User = require('../models/user.model');
module.exports = Alexa.CreateStateHandler(StatesConst.NEWSTATE, {
  'NewSession': function () {
    this.emit('NewSession'); // Uses the handler in newSessionHandlers
  },
  'MyUserIntent': function() {
    this.emit(':ask', "My username is "+User.Username.name);
    }
    }
如何在程序中的其他文件中引用新用户对象?我希望每次我的用户启动一个程序,我都会得到一个新的用户对象,我可以引用和更改其他文件中的属性。我将非常感谢您的帮助:)

查看是否收到消息=“[Function:Username]”


如果没有,您将看到一条消息,告诉您一些事情。可能找不到文件。

由于您通过将
用户名
分配给
模块来导出它。导出
,您需要在处理程序中将其用作
新用户
。例如,name.handler.js将变成:

const Alexa = require('alexa-sdk');
const User = require('../models/user.model');
module.exports = Alexa.CreateStateHandler(StatesConst.NAME, {
    'NewSession': function () {
        this.emit('NewSession'); // Uses the handler in newSessionHandlers
    },
    'MyNameIsIntent': function() {
        var user = new User("Anna", ["project1", "project2"]);
        this.emit(':ask', "Hi "+user.name);
    }
}
请注意,在
this.emit
行中,您应该使用
User
的实例,而不是类本身。(因此
User
而不是
User

此外,在user.handler.js文件中,您不会实例化任何
用户
。您将得到一个
无法读取未定义的属性“name”


最后,如果您的
Username
类位于user.js中,您的require语句应该类似于
require(“../models/user”)
,而不是
require(“../models/user model”)

您的意思是如何导出和导入类以及如何使用它吗?谢谢您的帮助:)在user.handler.js中是否真的不可能获取value user.name?我希望在那里获取文件name.handler.js中定义的值要访问user.handler.js中的
name
,您需要找到在name.handler.js中公开它的方法:您需要一个
User
的实例来访问其属性。我不熟悉
alexa sdk
包,但它看起来无法在处理程序之间共享状态/属性。您可能需要合并它们。您可以看看它们的示例,看看这是否对您有帮助吗?
const Alexa = require('alexa-sdk');
const User = require('../models/user.model');
module.exports = Alexa.CreateStateHandler(StatesConst.NAME, {
    'NewSession': function () {
        this.emit('NewSession'); // Uses the handler in newSessionHandlers
    },
    'MyNameIsIntent': function() {
        var user = new User("Anna", ["project1", "project2"]);
        this.emit(':ask', "Hi "+user.name);
    }
}