- 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'], |