Javascript Nodejs从其他文件引用类对象
我现在正在学习nodejs,我想知道如何引用在其他文件中创建的对象 例如: 我有一个类为user.js的文件,我正在导出该文件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我无法将其导出到该订单文件中
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);
}
}