
Created by Maksym Tarasenko
var module1 = require('module1');
var module1 = require('./node_modules/module1/index.js');
var module2 = require('./module2');
var module3 = require('../module3');
exports.log = function(msg) {
console.log(msg);
}
module.exports = function Loger() {
this.log = function(msg) {
console.log(msg);
}
};
{
"name": "3_npm_test",
"version": "1.0.0",
"description": "test package",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test\" && exit 1",
"runMain": "node main.js"
}
}
{
"repository": {
"type": "git",
"url": "git+https://github.com/itmoh/node-mentoring.git"
},
"keywords": [
"node"
],
"author": "maxim tarasenko",
"license": "ISC",
"bugs": {
"url": "https://github.com/itmoh/node-mentoring/issues"
},
"homepage": "https://github.com/itmoh/node-mentoring#readme"
}
var someModule = require('./some_module');
someModule.sum({ x: 1, y: 2 }, function(err, result) {
if (err) {
console.log(err);
return;
}
console.log(result);
});
var someModule = require('./some_module');
var qSum = Q.denodeify(someModule.sum);
Q({ x: 1, y: 2 })
.then(qSum)
.then(function(result) {
console.log(result);
})
.catch(function(error) {
console.log(error);
});
var async = require('async');
var someModule = require('./some_module');
async.waterfall([
function(callback) {
callback(null, { x: 1, y: 2 });
},
someModule.sum,
function(result, callback) {
console.log(result);
},
], function (err, result) {
console.log(err);
});
var Q = require('Q');
var co = require('co');
var someModule = require('./some_module');
var qSum = Q.denodeify(someModule.sum);
function* test() {
try {
var result = yield qSum({x: 1, y: 2});
console.log(result);
} catch(err) {
console.log(err);
}
};
co(test);
var EventEmitter = require('events');
var emitter = new EventEmitter();
var listener = (arg) => {console.log(arg);};
emitter.on('test', listener);
setTimeout(function() {
emitter.emit('test', 'Hello world');
emitter.removeListener('test', listener);
emitter.emit('test', 'Hello world');
}, 1000);
var http = require('http'),
fs = require('fs');
http.createServer(function(request, response) {
if (req.method === 'POST') {
fs.readFile('./data.csv', 'utf-8', function(err, data) {
response.end(data);
});
} else res.end('send me a POST\n');
}).listen(3000);
var express = require('express');
var app = express();
app.use(bodyParser.json());
app.use(function (req, res, next) {
console.log('Time:', Date.now());
next();
});
app.get('/user', function(req, res) {
res.send('hello user');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
app.get('/', function (req, res) {});
app.post('/:id', function (req, res) {});
var express = require('express');
var router = express.Router();
router.put(/\/abc|\/xyz/, function (req, res) {}});
router.delete(['/', '/:id'], function (req, res) {});
app.set('view engine', 'ejs');
app.locals.title = 'My App';
app.get('/', function (req, res) {
res.locals.someText = 'test';
res.render('test', { message: 'Hello there!'});;
});
db.unicorns
.insert({
name: 'Aurora',
dob: new Date(1992,2,13,7,47),
loves: ['carrot','papaya'],
weight: 600,
gender: 'm',
vampires: 63
});
db.unicorns.find({gender: 'm', weight: {$gt: 700}})
db.unicorns.find({gender: {$ne: 'f'}, weight: {$gte: 701}})
//$lt, $lte, $gt, $gte, $ne, $or
db.unicorns.find({
gender: 'f',
$or: [
{loves: 'apple'},
{loves: 'orange'},
{weight: {$lt: 500}}
]})
//Projection
db.unicorns.find({vampires: {$exists: false}}, { name:1, _id: 0})
.skip(2)
.limit(5)
.sort({name:1})
db.unicorns.insert({})
db.unicorns.insert([{}, {}])
db.unicorns.update(
{gender: 'm'},// selector
{
$set: {loves: "grape"},
$currentDate: {dob: true}
},//update
{
multi: true,
upsert: true
}
)
// remove all
db.unicorns.remove({})
// remove match condition
db.unicorns.remove({type: "food"})
// remove match condition only one
db.unicorns.remove({type: "food"}, 1)
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
mongoose.Promise = require('q').Promise;
db.on('error', function(err) {
console.error('connection error:', err));
});
db.once('open', function (callback) {
console.log('connected');
});
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var RolesSchema = new Schema({
role: {
type: String,
required: true
},
date: {type: Date, default: Date.now},
members: [{ type: String }]
}, {collection: 'roles'});
module.exports = mongoose.model('Roles', RolesSchema);
RolesSchema.methods.findAllMembersRoles = function () {
return this.model('Roles').find({members: this.members});
}
RolesSchema.statics.findByName = function (name) {
return this.find({role: new RegExp(name, 'i')});
}
RolesSchema.virtual('membersAll')
.get(function () {
return this.members.join(',');
})
.set(function (members) {
var membersArray = members.split(',');
this.members = membersArray;
});
var newModel = new model({
role: 'dev',
members: ['user1', 'user3']
});
newModel.save(function (err) {
if (err) return handleError(err);
saved!
});
newModel.save()
.then()
.catch()
model.find({role: 'dev'})
.skip(skip)
.limit(limit)
model.findById(id)
.then(function (modelInstance) {
var updatedInstance = _.extend(modelInstance, req.body);
return updatedInstance.save();
})
model.remove({role: 'dev'})
model.update({
role: 'dev'
}, {
$set: {members: ['user2']}
})
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
socket.emit('greet', {
hello: 'world'
});
socket.on('message', function (from, msg) {
console.log('message by ', from, ' saying ', msg);
});
socket.on('disconnect', function () {
socket.emit('user disconnected');
});
});
<script src "/socket.io/socket.io.js"></script>
<script>
var socket = io('http://localhost:8080');
socket.on('greet', function (data) {
console.log(data);
socket.emit('message', 'user', 'hello');
});
</script>
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
socket.broadcast.emit('new user connected');
});
var io = require('socket.io')(8080);
io.on('connection', function (socket) {
var tweets = setInterval(function () {
getCatsTweets(function (tweet) {
socket.volatile.emit('cats tweet', tweet);
});
}, 100);
socket.on('disconnect', function () {
clearInterval(tweets);
});
});