обучения NodeJS здесь ... У меня есть этот очень простой «классный» файл, который я поместил во внешний JS-файл. Как сделать это доступным для всех моих файлов маршрутизации и/или других внешних js-файлов (которые я также хотел бы загрузить)?Nodejs с ExpressJS, включая внешние файлы кода 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.
Перед добавлением функции прототипа в первый пример вам не нужно вводить 'new' перед функцией. – bspates