Skip to content

Instantly share code, notes, and snippets.

@machadogj
Created August 16, 2013 13:22
Show Gist options
  • Save machadogj/6249933 to your computer and use it in GitHub Desktop.
Save machadogj/6249933 to your computer and use it in GitHub Desktop.
Example of global scope being a problem when code is converted from js.
###
Include database config.
@var [Object] db
@api private
###
###
Set users collection
@var [JSON] urlsSchema
@api private
###
###
Get and set users collection
@var [Object] urls
@api private
###
###
Export urls modules for use in main app
@var [Object] module.exports.add
@var [Object] module.exports.findUrl
@return [Function] add
@return [Function] findUser
@api private
###
###
Add a doc to collection
@method add
@param [String] username
@param [String] email
@param [Number] id
@param [Function] callback
@return [Function][String] err
@return [Function][String] instance
@api public
###
add = (username, email, id, callback) ->
instance = new users()
instance.username = username
instance.email = email
instance.id = id
instance.save (err) ->
if err
callback err
else
callback null, instance
###
Find users list
@method usersList
@param [String] id
@param [Function] callback
@return [Function][String] err
@return [Function][String] data
@api public
###
usersList = (callback) ->
users = db.mongoose.model("users")
users.find (err, data) ->
if err
callback err
else
callback null, data
db = require("./db.js")
usersSchema = new db.Schema(
username: String
email: String
id: Number
)
users = db.mongoose.model("users", usersSchema)
module.exports.add = add
module.exports.usersList = usersList
/**
* Include database config.
*
* @var [Object] db
* @api private
*/
var db = require('./db.js');
/**
* Set users collection
*
* @var [JSON] urlsSchema
* @api private
*/
var usersSchema = new db.Schema({
username : String,
email : String,
id : Number
});
/**
* Get and set users collection
*
* @var [Object] urls
* @api private
*/
var users = db.mongoose.model('users', usersSchema);
/**
* Export urls modules for use in main app
*
* @var [Object] module.exports.add
* @var [Object] module.exports.findUrl
* @return [Function] add
* @return [Function] findUser
* @api private
*/
module.exports.add = add;
module.exports.usersList = usersList;
/**
* Add a doc to collection
*
* @method add
* @param [String] username
* @param [String] email
* @param [Number] id
* @param [Function] callback
* @return [Function][String] err
* @return [Function][String] instance
* @api public
*/
function add(username, email, id, callback) {
var instance = new users();
instance.username = username;
instance.email = email;
instance.id = id;
instance.save(function (err) {
if (err) {
callback(err);
}
else {
callback(null, instance);
}
});
}
/**
* Find users list
*
* @method usersList
* @param [String] id
* @param [Function] callback
* @return [Function][String] err
* @return [Function][String] data
* @api public
*/
function usersList(callback) {
var users = db.mongoose.model('users');
users.find(function(err, data) {
if(err) {
callback(err);
}
else {
callback(null, data);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment