- Platform built on Chrome's JavaScript runtime, for building fast, scalable network applications
- Nodejs uses event driven, non-blocking I/O
NOTE
- created by Ryan Dahl, introduced in 2009
- Ryan Dahl's First Presentation on Node
// RETWEET BOT ========================== | |
// find latest tweet according the query 'q' in params | |
var retweet = function() { | |
var params = { | |
q: '#nodejs, #Nodejs', // REQUIRED | |
result_type: 'recent', | |
lang: 'en' | |
} | |
// for more parametes, see: https://dev.twitter.com/rest/reference/get/search/tweets |
// FAVORITE BOT==================== | |
// find a random tweet and 'favorite' it | |
var favoriteTweet = function(){ | |
var params = { | |
q: '#nodejs, #Nodejs', // REQUIRED | |
result_type: 'recent', | |
lang: 'en' | |
} | |
// for more parametes, see: https://dev.twitter.com/rest/reference |
// Dependencies ========================= | |
var | |
twit = require('twit'), | |
config = require('./config'); | |
var Twitter = new twit(config); | |
// RETWEET BOT ========================== |
// Use Streams API for interacting with a USER ========== | |
// set up a user stream | |
var stream = Twitter.stream('user'); | |
// FOLLOW-Reply BOT =========================== | |
// when someone follows | |
stream.on('follow', followed); |
NOTE
const faker = require('faker') | |
const User = { | |
name: faker.name.findName(), | |
email: faker.internet.email(), | |
website: faker.internet.url(), | |
address: faker.address.streetAddress() + faker.address.city() + faker.address.country(), | |
bio: faker.lorem.sentences(), | |
image: faker.image.avatar() | |
} |
/// error handlers | |
// development error handler | |
// will print stacktrace | |
if (app.get('env') === 'development') { | |
app.use(function(err, req, res, next) { | |
res.send('error', { | |
message: err.message, | |
error: err | |
}); | |
}); } |
'use strict'; | |
module.exports = function(sequelize, DataTypes) { | |
var user = sequelize.define('user', { | |
id:{ | |
allowNull: false, | |
autoIncrement: true, | |
primaryKey: true, | |
type: DataTypes.INTEGER | |
}, | |
username: DataTypes.INTEGER, |
router.get('/:page', (req, res) => { | |
let limit = 50; // number of records per page | |
let offset = 0; | |
db.user.findAndCountAll() | |
.then((data) => { | |
let page = req.params.page; // page number | |
let pages = Math.ceil(data.count / limit); | |
offset = limit * (page - 1); | |
db.user.findAll({ | |
attributes: ['id', 'first_name', 'last_name', 'date_of_birth'], |