在这里学习NodeJS ...我将这个非常基本的“类”文件放入一个外部JS文件中。如何使所有路由文件和/或其他外部js文件(我也想加载)看到此文件?
/classes/music/usermanager.js
function User(){
this.email = "";
this.password = "";
this.userid = "";
}
function UserManager()
{
this.user = new User();
}
UserManager.prototype.login = new function (email, password){
var db = new DbManager();
db.Open();
params = {
$email : email,
$password : password
}
db.serialize(function(){
db.get("SELECT * FROM Users WHERE email = $email and password = $password", params, function(err,row) {
if (!err && row) {
//log in passed
this.user.userid = row.user.id;
this.user.email = row.user.email;
this.user.password = row.user.password;
return this.user;
}
else if (!err) {
//log in failed log event
return null;
}
else {
//error happened through out an event to log the error
return null;
}
});
});
}
/config/strategies/local.strategy.js有关如何在另一个文件中使用它的示例。
var passport = require('passport');
LocalStrategy = require('passport-local').Strategy;
module.exports = function () {
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function (email, password, done) {
//vadliating user here
var userManager = new UserManager();
var user = userManager.login(email, password);
done(null, user);
}));
};
我试图在我的app.js文件中做类似的事情,并且在编译时说“抛出新的TypeError('app.use()需要中间件功能');”。我发誓我读过某个地方的文章,您可以做到这一点,但现在找不到资源。
/asp.js
/*load external js library files for application use*/
app.use ("./classes/music/:path*");
尝试组织一个nodejs / expressjs项目时,我仍然感觉这里缺少基本的理解。
您在其中一个示例中实际使用了答案。您可以使用来使模块可用module.exports = whatever;
。这意味着您可以导出字符串,对象或“类”的任何内容。因此,您可以UserManager
通过将其添加到文件末尾(或实际上在任何地方)来进行导出。
module.exports = UserManager;
并通过使用其相对文件路径在另一个文件管理器中要求它。因此,如果它在同一目录中。
var UserManager = require('./usermanager.js');
因此,对于需要UserManager的local.strategy.js文件,它看起来像:(如果文件路径都在同一根目录中)
var UserManager = require('../../classes/music/usermanager.js');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句