gpt4 book ai didi

javascript - Nodejs 与 ExpressJS 包括外部 js 代码文件供使用

转载 作者:行者123 更新时间:2023-11-28 05:28:22 25 4
gpt4 key购买 nike

在这里学习 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');

关于javascript - Nodejs 与 ExpressJS 包括外部 js 代码文件供使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com