SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Node.jsで学生向け
e-learningサイト
を作った話
東京Node学園祭2013
2013/10/26

吉田徹生 @teyosh
自己紹介
名前:吉田徹生 よしだ てっせい
twitter:@teyosh
facebook:https://www.facebook.com/teyosh
所属:(株)シンドバッド・インターナショナル
2013年7月からJOIN
アジェンダ
・サイト紹介
・サーバ構成
・利用しているパッケージ
・質疑応答
サイト紹介
スタディ・タウン
2012年10月23日公開
中学受験生向け過去問映像授業
http://chugakujuken.studytown.jp/
サイト紹介
首都圏110校
平成22年度〜平成25年度分の過去問
解説映像授業
開発言語
PHPで作成
利用フレームワーク
・Fuel PHP
コンテンツを増やす!!
2013年8月24日
中学生、高校生向けコンテンツ開始
http://www.studytown.jp
http://jh.studytown.jp
http://hi.studytown.jp
サーバ構成 AWS
・EC2
・RDS
・SES
・Elasticache
・S3

・Route53
・DynamoDB
・VPC
・VPN Gateway
etc
サーバ
Webサーバ スタティック及びProxy
・nginx
ログ収集
・Tresure Data
node
・0.10.x
APサーバ
まずはフレームワーク(ミドルウェア)を探す
候補として
flatiron
Matador
express
flatiron
http://flatironjs.org/
nodejitsu社で公開されている
サーバ側とクライアント側で同一フレームワークで
作成
・情報が少ない
・選定時はアップデートが頻繁だった
Matador
http://obvious.github.io/matador/
Twitterを作成したObvious社が作成
Connect.jsを利用
ビューにはSoyNodeを利用している
・選定時は残念ながらベータだった
SoyNode
Closure Templates
GoogleのClosure toolsの一つ
https://developers.google.
com/closure/templates/
express
ほぼ、デファクト・スタンダード
情報豊富で調べやすい
ミドルウェアが豊富で設定しやすい
・expressで決定
利用パッケージ
mysql :
"MySQLに接続"
connect-memcached :
"セッションをElasticacheで共有"
connect-ltsv-logger :
"connectのログをltsvで出力"
connect-ltsv-logger
express2.xに最適化されている
addressの取得で落ちる
proxy利用のため、keep-aliveで対処
X-Forwarded-Forがres.getHeaderではなくてreq.
getに変更
利用パッケージ
stream-file-archive :
"ログの吐き出しをストリームでファイルに書き込み"
winston :
"ログ出力を制御"
ejs :
"View Templateをejsを利用"
stream-file-archive
Logをstreamで吐き出して、それをファイルに書き
込んでいます
logrotateができるようになる
利用パッケージ
validator :
"入力バリデート用"
config :
"$NODE_ENVによりconfigファイルの読み替え"
async :
"非同期処理を簡単に扱います"
async
callback地獄からの開放
DBへの接続がメインで利用
async.series();
async.each();
async.parallel();
利用パッケージ
dateformat :
"日時のフォーマットを簡単に整形"
moment :
"日時のパースもできるスグレモノ"
lodash :
"ライブラリとして利用、9割配列処理で利用"
利用パッケージ
pm2 :
"デーモン化、クラスタ起動もお手の物"
browser :
"クッキーを簡単に利用してくれるHTTPClient"
node-uuid :
"uuidを生成"
browser
・クッキーを利用しないといけない場合にとっても
便利
・after();で順アクセスが簡単にできる
利用パッケージ
aws-sdk :
"AWSを利用するため主にS3のSigned URL生成"
ua-parser-js :
"ユーザーエージェントでコードの出し分け"
nodemailer :
"SESでSMTPを利用"
nodemailer
SMTP
SES
Sendmailで簡単に利用できる
・unicodeでの利用がメイン
・Shift_JISやJISで送信にはiconvでゴニョゴニョ
利用パッケージ
"email-templates" :
"メール本文をejsでtemplate化"
"ssh2" :
"SFTPを簡単に利用"
"csv" :
"CSV読み込み"
ssh2
Pure JavaScriptのSSHクライアント
SFTPの利用がNodeで簡単に!!
・keyもuser passも思いのまま
・rmdirはあるのにrmが無い・・・
フロントエンド
バックオフィス系では
AngularJSを利用
Yeomanでひな形作成
AngularJS
・Google主導で開発
・双方向バインディング
・DI
・最近、人気急上昇中!!
・AngularJS Japan User Group募集中
https://groups.google.com/forum/#!forum/angularjs-jp
新卒・中途採用のご案内
システム関連の仕事に興味がある方
  下記までご連絡ください

  Mail career-si@sindbad-int.com
  TEL 03-5468-8835 採用担当 浜園まで
新卒採用イベントもやっております
  『失敗しない就活術と人事の本音・裏側』
11/6(水)、11/9(土) 18:00~20:30
@当社 渋谷オフィス
 ◎参加資格:現大学 3年生(15新卒採用生)
 TEL 03-5468-8835 採用担当 浜園まで

©2013 SINDBAD INTERNATIONAL CO.,LTD. ALL Rights Reserved.

Weitere ähnliche Inhalte

Ähnlich wie Node.jsで学生向けe-learningサイトを作った話

勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg
Daisuke Kasuya
 
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
 

Ähnlich wie Node.jsで学生向けe-learningサイトを作った話 (11)

ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
 
CoderDojo福井の取り組み
CoderDojo福井の取り組みCoderDojo福井の取り組み
CoderDojo福井の取り組み
 
MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)
 
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~
 
勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg
 
Jquery 140522
Jquery 140522Jquery 140522
Jquery 140522
 
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
 
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
 
第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Node.jsで学生向けe-learningサイトを作った話