- 【前準備 その1】 Python インストール (※SQLite インストールに必要)
- http://www.python.jp/download/ から python-2.7.5.amd64.msi を取得し、「C:\Python27」にインストール後、パスを通す
- 【前準備 その2】 「vcvarsall.bat」をインストール (※SQLite インストールに必要)
- 当該バッチは VS2010 と互換性のあるバージョンの Windows SDK についてくるようです。僕は VisualStudio 2010 をインストールしていたので下記フォルダにありました。
「C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat」 - 【前準備 追記】
- 「vcvarsall.bat」を使ったのは、
$ npm install sqlite3
を OS 付属のコマンドプロンプトを使って実行すると↓みたいなエラーが出てうまく行かなかったんだけれども「vcvarsall.bat」を使ったら解決したよ。っていう人がいたから。でも、複数回コマンドプロンプトから試してみたらうまく行った。「vcvarsall.bat」は特に必要ないのかしらん... (汗) Python はないとエラーになるはず (`・ω・´)
... C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(5 74,5): error MSB6006: "mt.exe" はコード 31 を伴って終了しました。 [C:\Users\higu chi_yuki\Dropb ox\node.js\testapp\node_modules\sqlite3\build\node_sqlite3.vcxproj] gyp ERR! build error gyp ERR! stack Error: `c:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe ` failed with exit code: 1 ...
- 1. Node.js をインストール
- http://nodejs.org/download/ から node-v0.10.15-x64.msi を取得して実行
- 2. Express をグローバル環境に (-g オプション追加) インストール
$ npm install -g express
- 3. アプリケーションフォルダ「sample」を作成し、初期化
- (※アプリケーションフォルダの親フォルダで実行のこと)
$ mkdir sample $ express -e sample $ cd sample && npm install
- 4. 「Visual Studio コマンド プロンプト *1」を利用して SQLite3 インストール
$ npm install sqlite3
*1 ... 「Visual Studio コマンド プロンプト」は、僕が VisualStudio 2010 をインストールしたことによる表現です。実体は「前準備 その2」の「vcvarsall.bat」です。
起動方法は、[スタート] - [すべてのプログラム] - [Microsoft Visual Studio 2010] - [Visual Studio Tools] - [Visual Studio コマンド プロンプト (2010)]です。成功するとこんなかんじになります。
- 5. SQLite のテーブルから読みだした内容を表示するサンプルをば
-
SQLite のファイルを準備します。ここでは PupSQLite を使って sample.db を作りました。
フォルダの様子はこんなかんじ。
sample/app.jpvar express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var app = express(); app.set('port', process.env.PORT || 1234); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); app.get('/', routes.index); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });
sample/routes/index.jsvar sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('sample.db'); exports.index = function(req, res){ db.serialize(function(){ db.all("select * from messages", function(err, rows){ if (!err) { res.render('index', { title: 'Node.js + Express + SQLite3', list: rows, }); } }); }); };
sample/views/index.ejs<!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <ul> <% list.forEach(function(message){ %> <li><%= message.content %></li> <% }) %> </ul> </body> </html>
実行結果はこんなかんじ。
- 6. 参考にさせてもらったサイト
なんてステキなんだろう Node.js ... Raspberry Pi にも入れてみたいです!
0 件のコメント:
コメントを投稿