通过节点中的Module.exportsinheritance
这可能是我愚蠢的…
我使用快递节点,我有一个单独的文件使用出口的路线。 在它上面,我需要并且转换为一个variables,我已经使用npm安装了一个包。
var passwordHash = require('password-hash'); app.get("/signup", routes.signup);
里面routes.signup,我有:
passwordHash.generate(req.form.username, {algorithm: 'sha512'})
它会抛出一个错误,说明passwordHash是未定义的。 我怎么能去“inheritance”说要求调用?
你也可以做下面的事情(比如说这个代码是在app.js中定义的):
module.passwordHash = require('password-hash'); app.get("/signup", routes.signup);
在routes.signup:
var passwordHash = module.parent.passwordHash; // from app.js passwordHash.generate(req.form.username, {algorithm: 'sha512'});
单独的文件有不同的范围,所以如果你想在你的其他文件中使用passwordHash
,那么你需要调用require('password-hash');
在那个文件中。
你可以通过应用程序variables来移动你的variables,这应该是无处不在的 尝试做这样的事情:
app.passwordHash = require('password-hash'); app.get("/signup", routes.signup);
你可能会尝试的另一件事是使用全局variables,这意味着从密码哈希清除var。 不知道这是否会明确,但值得检查。
passwordHash = require('password-hash'); app.get("/signup", routes.signup);
让我知道是否有帮助。
我知道这个问题是旧的,但这会帮助我:使用出口!
所以如果我有一个名为Index.js的文件,
var model = require("./Model"); function test() { model.setMyVar("blah"); console.log(model.myVar); }
我的Model.js看起来像这样:
var myVar; exports.myVar = myVar; function setMyVar(value) { this.myVar = value; } exports.setMyVar = setMyVar;