node.jsの導入
node.jsの開始と終了
開始: node xxxx.js
終了: Ctrl+C
node.jsを使ったjsファイルの書き方
典型的なhello worldは以下のように書ける。
var ip = "ホスト名"; //localhost等を指定。
var port = ポート番号; //既に使用していないポート番号を指定(コンソール等で一度立ち上げ、サーバプロセスが残っている場合にはプロセスをkillする。
//既に使用しているポート番号を指定した場合は、Error: listen EADDRINUSEが出るので注意。
var http = require('http');
var server = http.createServer(); //ここで.listenとしても良い。
server.on("request", function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('Hello World.\n');
response.end();
});
server.listen(port,ip);
node.jsを使ったPOST,GET
参考サイトを見ながら、jadeを使わずにやってみた。
やり方としては間違っている気がする。。。
1.事前準備
npm install express
npm install body-parser
2.node.jsを使い、画面遷移を実現。
/*遷移元.html*/
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<script type="text/javascript;" src="serverTest.js"></script>
</head>
<body>
<form method="post" action="http://localhost:適当なポート番号/適当なアクション">
<textarea name="hoge">testです。</textarea><br>
<input type="submit" value="送信">
</form>
</body>
</html>
/*serverTest.js*/
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var fs = require('fs');
app.use(bodyParser.urlencoded({extended:true}));
app.post('/myaction',function(request,response) {
fs.readFile('./遷移先.html','UTF-8', function(err,data) {
response.writeHead(200,{'Content-Type':'text/html'});
//formから受け取ったものはrequest.bodyに入るので、
//@@title@@を置換
response.end(data.replace(/@@title@@/g,request.body.hoge));
});
});
app.listen(適当なポート番号, function() {
console.log('server is running');
});
/*遷移先.html*/
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>@@title@@</title>
</head>
<body>
フォームの入力データに従い、タイトル変更テスト。
</body>
</html>
その他
- Webアプリケーションフレームワークとして有名なものにexpress.js等がある。
- HTMLテンプレートエンジンとしてJade等を使うとHTMLの一部を動的に変更できたりする。
最終更新:2015年03月31日 18:47