Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hidetoshi Mori
5,543 views
Nodejsによるapiサーバ構築事例
node.js presentation
Technology
◦
Read more
16
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PDF
汎用apiサーバの構築
by
Hidetoshi Mori
PDF
実践スクレイピング
by
だいすけ ふるかわ
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
PDF
45分で理解する webクローリング入門 斉藤之雄
by
Yukio Saito
PDF
エコなWebサーバー
by
emasaka
PDF
Introduction to MongoDB
by
moai kids
PDF
MongoDBではじめるカジュアルなタイムラインシステム
by
Hitoshi Asai
PPTX
MongoDB on EC2 #mongodbcasual
by
Yasuhiro Matsuo
汎用apiサーバの構築
by
Hidetoshi Mori
実践スクレイピング
by
だいすけ ふるかわ
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
45分で理解する webクローリング入門 斉藤之雄
by
Yukio Saito
エコなWebサーバー
by
emasaka
Introduction to MongoDB
by
moai kids
MongoDBではじめるカジュアルなタイムラインシステム
by
Hitoshi Asai
MongoDB on EC2 #mongodbcasual
by
Yasuhiro Matsuo
What's hot
PDF
20130216 magical record
by
Hidetoshi Mori
PPT
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
PDF
MongoDB〜その性質と利用場面〜
by
Naruhiko Ogasawara
PDF
CyberAgentにおけるMongoDB
by
Akihiro Kuwano
PPTX
MongoDBの監視
by
Tetsutaro Watanabe
PDF
Casual Compression on MongoDB
by
moai kids
PPTX
Ossで作るwebサイト
by
Soudai Sone
KEY
Chiba pm#1 - ArangoDB for Perl
by
Hideaki Ohno
PPTX
MongoDB World 2014に行ってきた!
by
Tetsutaro Watanabe
PDF
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
by
parrotstudio
ODP
Next-L Enju 開発ワークショップ #8
by
Kosuke Tanabe
PDF
スマートWordPress on JAWS-UG Tokyo#17
by
Hiro Fukami
ODP
Lt
by
LGA128
PDF
Pythonで検索エンジン2
by
Yasukazu Kawasaki
PPTX
コロナ禍の所蔵品検索システム
by
Naosuke Okamoto
PPTX
Reactjs
by
しくみ製作所
PDF
MongoDBCSharp
by
ytanno
PPT
Mongoざっくり紹介
by
masakazuyamanaka
PPTX
Mongo db勉強会の補足
by
CROOZ, inc.
PDF
Tour of Scraping
by
Kenta Yonekura
20130216 magical record
by
Hidetoshi Mori
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
MongoDB〜その性質と利用場面〜
by
Naruhiko Ogasawara
CyberAgentにおけるMongoDB
by
Akihiro Kuwano
MongoDBの監視
by
Tetsutaro Watanabe
Casual Compression on MongoDB
by
moai kids
Ossで作るwebサイト
by
Soudai Sone
Chiba pm#1 - ArangoDB for Perl
by
Hideaki Ohno
MongoDB World 2014に行ってきた!
by
Tetsutaro Watanabe
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
by
parrotstudio
Next-L Enju 開発ワークショップ #8
by
Kosuke Tanabe
スマートWordPress on JAWS-UG Tokyo#17
by
Hiro Fukami
Lt
by
LGA128
Pythonで検索エンジン2
by
Yasukazu Kawasaki
コロナ禍の所蔵品検索システム
by
Naosuke Okamoto
Reactjs
by
しくみ製作所
MongoDBCSharp
by
ytanno
Mongoざっくり紹介
by
masakazuyamanaka
Mongo db勉強会の補足
by
CROOZ, inc.
Tour of Scraping
by
Kenta Yonekura
Viewers also liked
PPTX
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
by
Masayuki Abe
PDF
サーバサイドNodeの使い道
by
pospome
PDF
The Enterprise Case for Node.js
by
NodejsFoundation
PDF
Rest ful api設計入門
by
Monstar Lab Inc.
PDF
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
by
Shinobu Yasuda
PDF
Node.js入門
by
俊夫 森
PPTX
【初心者向け】Go言語勉強会資料
by
Yuji Otani
PDF
スマホアプリ開発者のためのWeb api開発入門の入門
by
Kenyu Miura
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PDF
Node.js Tutorial at Hiroshima
by
Yoshihiro Iwanaga
PDF
Node.js基礎の基礎 - Miyazaki.js vol.2
by
Nobuhiro Nakashima
PPT
Node.js で Web アプリ開発
by
Tatsumi Naganuma
PDF
Nodeについて
by
Natsuki Yamanaka
PPTX
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayer
by
Kazuhiko Isaji
PDF
Bluemix_API_Possibility
by
Harada Kazuki
PDF
Node Foundation Membership Overview 20160907
by
NodejsFoundation
PPTX
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
by
Kazuhiko Isaji
PDF
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
by
IBMソリューション
PDF
Bluemixと既存システムとの連携
by
IBMソリューション
PDF
Bluemixの基本を知る -全体像-
by
IBMソリューション
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
by
Masayuki Abe
サーバサイドNodeの使い道
by
pospome
The Enterprise Case for Node.js
by
NodejsFoundation
Rest ful api設計入門
by
Monstar Lab Inc.
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
by
Shinobu Yasuda
Node.js入門
by
俊夫 森
【初心者向け】Go言語勉強会資料
by
Yuji Otani
スマホアプリ開発者のためのWeb api開発入門の入門
by
Kenyu Miura
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
Node.js Tutorial at Hiroshima
by
Yoshihiro Iwanaga
Node.js基礎の基礎 - Miyazaki.js vol.2
by
Nobuhiro Nakashima
Node.js で Web アプリ開発
by
Tatsumi Naganuma
Nodeについて
by
Natsuki Yamanaka
IBM Bluemix infrastructure SoftLayer はじめての見積もりの仕方 softlayer
by
Kazuhiko Isaji
Bluemix_API_Possibility
by
Harada Kazuki
Node Foundation Membership Overview 20160907
by
NodejsFoundation
【共通版】 IBM Cloud (SoftLayer) 最新動向情報 2017年11月版 v1.0
by
Kazuhiko Isaji
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
by
IBMソリューション
Bluemixと既存システムとの連携
by
IBMソリューション
Bluemixの基本を知る -全体像-
by
IBMソリューション
Similar to Nodejsによるapiサーバ構築事例
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
by
Akihiro Kuwano
PDF
APIと連動するWebアプリ開発-バックエンド入門_by CraftStadium
by
CraftStaidium
PDF
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
by
Takahiro Inoue
PPTX
JavaScriptから利用するFirebase
by
Takuji Shimokawa
PDF
TypeScript 勉強会
by
Masahiro Wakame
PPT
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
大(中)規模Java script開発について
by
Yuki Tanaka
PDF
Using Ext Direct with SenchaTouch2
by
久司 中村
PDF
mongodbの簡易ストレージ化
by
Hidetoshi Mori
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
PDF
後期02
by
Takenori Nakagawa
PDF
Hyper → Highspeed → Development
by
aktsk
PPTX
Develop Web Application with Node.js + Express
by
Akinari Tsugo
PDF
後期03
by
Takenori Nakagawa
PDF
RESTful APIとしてのRailsとクライアントとしてのJavaScript
by
Naoto Koshikawa
PDF
Teclab3
by
Eikichi Yamaguchi
KEY
いまさらJavaScript
by
Naomichi Yamakita
PDF
20120831 mongoid
by
Takeshi AKIMA
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
by
Akihiro Kuwano
APIと連動するWebアプリ開発-バックエンド入門_by CraftStadium
by
CraftStaidium
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
by
Takahiro Inoue
JavaScriptから利用するFirebase
by
Takuji Shimokawa
TypeScript 勉強会
by
Masahiro Wakame
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
大(中)規模Java script開発について
by
Yuki Tanaka
Using Ext Direct with SenchaTouch2
by
久司 中村
mongodbの簡易ストレージ化
by
Hidetoshi Mori
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
後期02
by
Takenori Nakagawa
Hyper → Highspeed → Development
by
aktsk
Develop Web Application with Node.js + Express
by
Akinari Tsugo
後期03
by
Takenori Nakagawa
RESTful APIとしてのRailsとクライアントとしてのJavaScript
by
Naoto Koshikawa
Teclab3
by
Eikichi Yamaguchi
いまさらJavaScript
by
Naomichi Yamakita
20120831 mongoid
by
Takeshi AKIMA
More from Hidetoshi Mori
PDF
20130216 小ネタ集
by
Hidetoshi Mori
PDF
UITableViewで無限CoverFlowを作る
by
Hidetoshi Mori
PDF
Git超入門
by
Hidetoshi Mori
PPTX
モバイルビジネスの動向
by
Hidetoshi Mori
PDF
Evernote連携
by
Hidetoshi Mori
KEY
Blocksの活用法
by
Hidetoshi Mori
PDF
Storyboard
by
Hidetoshi Mori
PPTX
サービス開発における工程
by
Hidetoshi Mori
PDF
インタラクションデザインの考察
by
Hidetoshi Mori
PDF
Presentation of TapkuLibrary
by
Hidetoshi Mori
PDF
Facebook api for iOS
by
Hidetoshi Mori
PDF
Facebook API for iOS
by
Hidetoshi Mori
PDF
モバイルビジネスの動向
by
Hidetoshi Mori
PDF
コンシューマアプリを作るということ
by
Hidetoshi Mori
PPTX
FacebookAPI for iOS
by
Hidetoshi Mori
PPTX
インタラクションデザインの考察
by
Hidetoshi Mori
PPTX
ゲリラ的サービスの育て方
by
Hidetoshi Mori
PDF
プロジェクト管理しないという提案
by
Hidetoshi Mori
PDF
Photo mosaic 検証
by
Hidetoshi Mori
PDF
20130515 diary euglena_en
by
Hidetoshi Mori
20130216 小ネタ集
by
Hidetoshi Mori
UITableViewで無限CoverFlowを作る
by
Hidetoshi Mori
Git超入門
by
Hidetoshi Mori
モバイルビジネスの動向
by
Hidetoshi Mori
Evernote連携
by
Hidetoshi Mori
Blocksの活用法
by
Hidetoshi Mori
Storyboard
by
Hidetoshi Mori
サービス開発における工程
by
Hidetoshi Mori
インタラクションデザインの考察
by
Hidetoshi Mori
Presentation of TapkuLibrary
by
Hidetoshi Mori
Facebook api for iOS
by
Hidetoshi Mori
Facebook API for iOS
by
Hidetoshi Mori
モバイルビジネスの動向
by
Hidetoshi Mori
コンシューマアプリを作るということ
by
Hidetoshi Mori
FacebookAPI for iOS
by
Hidetoshi Mori
インタラクションデザインの考察
by
Hidetoshi Mori
ゲリラ的サービスの育て方
by
Hidetoshi Mori
プロジェクト管理しないという提案
by
Hidetoshi Mori
Photo mosaic 検証
by
Hidetoshi Mori
20130515 diary euglena_en
by
Hidetoshi Mori
Recently uploaded
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
Nodejsによるapiサーバ構築事例
1.
node.jsによるAPIサーバ構築
h_mori 13年4月18日木曜日
2.
自己紹介
• 森 英寿(プログラマ) hidetoshi.mori @h_mori SOICHA/TweetMe ATND暦/生存連絡 13年4月18日木曜日
3.
背景
• iOSアプリから利用するAPIサーバ構築 • API認証基盤を作る • PushNotificationを発行 13年4月18日木曜日
4.
node.jsを利用した経緯
• MongoDBのRESTオプションによる構築 • 後から認証基盤を追加実装 • 後からPushNotificationを実装 13年4月18日木曜日
5.
データモデル
• DataList (トランザクション) • User (アカウント情報) ※追加 • Device (端末情報) ※追加 • Group (ユーザカテゴリ) ※追加 13年4月18日木曜日
6.
サーバ構成
• MongoDB • restify • Mongoose 13年4月18日木曜日
7.
MongoDB?
• NoSQL • ドキュメント指向DB(スキーマレス) • where, like検索, 集計関数も可能 13年4月18日木曜日
8.
苦手なこと
• トランザクション制御 (アトミック性は保証) • リレーショナル、一意制約等 13年4月18日木曜日
9.
DB構造
• DBS > Collection > Object (Database) (Scheme) (Record) 13年4月18日木曜日
10.
メリット
• 起動オプションにREST I/Fがある • JSONとの親和性が高い • WebAPI化しやすい 13年4月18日木曜日
11.
有用なケース
• トランザクション制御が不要 • 大量書き込みが想定される • データの一意制約が不要 13年4月18日木曜日
12.
導入
• $ brew install mongodb • $ port install mongodb • mongodb.orgからDLして任意のフォルダに展開 13年4月18日木曜日
13.
DBサーバ起動
• $ ./bin/mongod -dbpath=db/ --rest ※RESTオプション付き ※28017ポートでWebAPIが起動 13年4月18日木曜日
14.
DBクライアント
• $ ./bin/mongo GUI clientも存在するがメリットは薄い 13年4月18日木曜日
15.
URLアクセス
• curl 'http://localhost:28017/testdb/hoge' • curl -d "{'user':'test'}" 'http://localhost:28017/testdb/hoge' 13年4月18日木曜日
16.
restify ?
• RESTに特化したnode.jsモジュール • Expressを軽量化したようなもの 13年4月18日木曜日
17.
restifyの主な機能
• Routing • Header Parser / Error handler • JSONP/JSON support • GZIP support • URL-encoder • multipart form 13年4月18日木曜日
18.
restify導入
• $ npm install restify • var restify = require('restify'); 13年4月18日木曜日
19.
Routing
var restify = require('restify'); var server = restify.createServer(); server.use(restify.queryParser()); function send(req, res, next) { res.send('hello ' + req.params.name); return next(); } server.post('/hello', function create(req, res, next) { res.send(201, Math.random().toString(36).substr(3, 8)); return next(); }); server.get('/hello/:name', send); server.head('/hello/:name', send); server.del('hello/:name', function rm(req, res, next) { res.send(204); return next(); }); 13年4月18日木曜日
20.
Mongoose ?
• MongoDB用ドライバ • Object Modeling Tool (O/Rマッパ) • DBコネクションのバッファリング • Validator、Defaults、Index等の定義可 13年4月18日木曜日
21.
Mongooseの使用例
var UserSchema = new mongoose.Schema({ email:{ type: String, unique: true, index: true }, password:String, created_at:{type: Date, default: Date.now}, updated_at:{type: Date, default: Date.now} }); UserSchema.pre('save', function(next) { this.updated_at = Date.now(); next(); }); var User = mongoose.model('user', UserSchema); 13年4月18日木曜日
22.
Mongoose導入
• $ npm install mongoose • var mongoose = require('mongoose'); 13年4月18日木曜日
23.
cloud9 IDE
• ブラウザベースIDE • クラウド上にプライベート領域を作れる (github,bitbucket,heroku等と連携) • Node.js、PHP、Java、Ruby等をサポート 13年4月18日木曜日
24.
cloud9 IDE 導入
• ローカル環境にインストールも可能 • $ git clone https://github.com/ajaxorg/ cloud9.git cloud9 • sudo ./cloud9/bin/cloud9.sh 13年4月18日木曜日
25.
cloud9 IDEの起動
• ./bin/cloud9.sh -w {workspace_dir} で起動 • http://localhost:3131 にアクセス 13年4月18日木曜日
26.
認証方式
• SSL + Basic認証 + sha1(solt) 13年4月18日木曜日
27.
restify.authorizationParser
• server.use(restify.authorizationParser()); • req.authorization オブジェクト { scheme: <Basic|Signature|...>, credentials: <Undecoded value of header>, basic: { username: $user password: $password } } 13年4月18日木曜日
28.
認証基盤の実装
server.use(function authenticate(req, res, next) { if (!req.authorization.basic) { res.header('WWW-Authenticate', 'Basic realm=""'); res.send(401); return next(false); } User.findOne({email:req.username}, function (err, user) { if (err) { return next(err); } if (!user && user.password !== req.authorization.basic.password) { return next(new restify.NotAuthorizedError()); } return next(); }); }); 13年4月18日木曜日
29.
実装上の注意
• I/O系関数は処理順序を保証しない var user = User.findOne({email:req.params.email}); user.password = req.params.password; user.save(); res.send(user); 13年4月18日木曜日
30.
実装上の注意
• 必ずコールバックにて処理 User.findOne({email:req.params.email}, function(err, user) { user.password = req.params.password; user.save(function(arr, data)) { res.send(data); }); } 13年4月18日木曜日
31.
実装上の注意
• 複雑な処理の同期が必要な場合は外部 モジュールを検討する ‣ async.js ‣ node-fibers ‣ flow-js ‣ step 13年4月18日木曜日
32.
実装して思ったこと
• 非同期処理が不要な場合node.jsは向かない (client, middlewareにロジックを置く場合は有) • MongoDBと簡易JsonAPIは相性がいい • node.jsと関連モジュールはまだまだ過渡期 13年4月18日木曜日
Download