我是Node.js的新手,我有一些问题。我正在实现简单的聊天应用程序,并在ordor中这样做我正在使用ExpressJS + Nodejs + Sockert.io包。 这是我的UserServive.js
var db = require('../db')
class UserService {
findUserByNick(nick, callback) {
let userCollection = db.get('usercollection')
userCollection.findOne({username: nick}, (error, data) => {
callback(error, data);
});
}
findUserByEmail(email, callback) {
let userCollection = db.get('usercollection')
userCollection.findOne({email: nick}, (error, data) => {
callback(error, data);
});
}
}
var us = new UserService();
module.exports = us;
导出对象实例是否可以接受?或者我应该像所有代码一样使所有的methid静止:
class tokens_controller extends require('./controller_utils') {
static check_token(token_data, callback) {
if (this.validator(token_data, valid_templates.tokens.check_token, callback)) {
this.get_token_info(token_data.access_token, (get_token_info_err, get_token_info_result)=> {
TOKENS_MODEL.update({token: token_data.access_token}, (update_error, update_result)=> {
console.log(update_result);
if (update_error) {
callback(update_error, null);
}
else {
USERS_MODEL.find_users({
find: [{user_id: update_result.user_id}],
nots: ['password']
}, (find_users_error, find_users_result)=> {
if (find_users_error) {
callback(find_users_error, null);
}
else {
let user = find_users_result[0];
let result = {user: user, token: update_result};
callback(null, result);
}
});
}
});
}, callback);
}
}
}
module.exports = tokens_controller;
答案 0 :(得分:0)
如果它只是一项服务,你不需要使用this
或其他东西,你可以省略类行为,只导出一个对象。
var db = require('../db')
module.exports = {
findUserByNick: function(nick, callback) {
let userCollection = db.get('usercollection')
userCollection.findOne({username: nick}, (error, data) => {
callback(error, data);
});
},
findUserByEmail: function(email, callback) {
let userCollection = db.get('usercollection')
userCollection.findOne({email: nick}, (error, data) => {
callback(error, data);
});
}
};
答案 1 :(得分:0)
Node.js开发人员不喜欢把东西放在全局范围内。这就是我如何做到这一点:
module.exports = function() {
class MyClass {
// Stuff
}
return MyClass;
}
然后在主文件中:
const MyClass = require("./MyClass.js")();
答案 2 :(得分:0)
您实际上可以在UserService中执行。
export default UserService;
然后
import UserService from './userService';
new UserService()