Javascript 模块导出。Node.js
我是Node.js的新手,我有一些疑问。我正在实现简单的聊天应用程序,为了实现这一点,我使用了ExpressJS+Nodejs+Sockert.io捆绑包。 这是我的UserServive.jsJavascript 模块导出。Node.js,javascript,node.js,Javascript,Node.js,我是Node.js的新手,我有一些疑问。我正在实现简单的聊天应用程序,为了实现这一点,我使用了ExpressJS+Nodejs+Sockert.io捆绑包。 这是我的UserServive.js var db = require('../db') class UserService { findUserByNick(nick, callback) { let userCollection = db.get('usercollection') userC
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;
如果它只是一个服务,而您不需要使用
这个
或其他东西,那么您可以忽略类行为,只导出一个对象
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);
});
}
};
js开发者不喜欢把东西放在全局范围内。例如,我是这样做的:
module.exports = function() {
class MyClass {
// Stuff
}
return MyClass;
}
然后在主文件中:
const MyClass = require("./MyClass.js")();
实际上,您可以在UserService中执行这些操作
export default UserService;
然后
import UserService from './userService';
new UserService()