<Python> 文字列と数値の連結
文字列などを連結するときは
str.format() を使用する
>>> num = 123 >>> num 123 >>> print("{0}{1}".format("hello", num)) hello123
<Python> coding:utf-8 の記述するところ
# -*-coding: utf-8 -*-
を記述するところは一番上!!
そうしないと
SyntaxError: Non-ASCII character '\xe5' in file D:\Program Files (x86)\pleiades\workspace\commentRank\src\fileTest\fileT.py on line 16, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
こんなエラーが出る
気をつけよう
OJTで学んだこと
メモとして書いておく
・限られた時間の中で作業をしていくのは大変であること
・指摘されたところは再度指摘されないように細心の注意を払って修正を行うこと
・1日のスケジュールを立てることにより、やることが明確になり、仕事がやりやすくなること
・時間(納期)は絶対に守らなくてはいけないが、それ以上に品質が大切であること
・スケジュール作成時に、行うタスクの内容を少しでも確認することで時間の設定がしやすくなること
・成果物の確認後に、修正が出た場合にはその日のうちに修正をすること
・スケジュールで一番優先順位の高いタスクは、ほかの人が絡む作業(聞かないと進まない作業など)であること
・難易度が高そうな作業をするときには、自分の中で「この作業は難易度が高い」と考えておくことが大切。もし、考えないとただ闇雲に作業をして、時間だけが過ぎてしまう可能性があるため
・バグを直した後には、ほかの部分に影響していないかをよく確認すること
・仕様書がしっかりと作れていれば、後々の製作が順調に進めることができること
Node.js error: invalid frontend message type 0 ってエラー出た
var pg = require('pg'); var http = require('http'); var fs = require('fs'); var ejs = require('ejs'); var testEjs = fs.readFileSync('public_html/postgres.ejs', 'utf-8'); // httpサーバーの作成 var server = http.createServer(); var conString = 'postgres://postgres:tmgykng324@localhost/cas_db'; var client = new pg.Client(conString); server.on('request', function(req, res) { if(req.url != '/favicon.ico') { // postgreSQLに接続 client.connect(function(err) { if(err) { // エラー時 return console.error('could not connect to postgres', err); } var userData = [2]; userData[0] = []; // user_id userData[1] = []; // create_date // SELECTのSQLを実行 client.query('SELECT user_id, create_date FROM m_user;', function(err, result) { if(err) { // エラー時 return console.error('error running query', err); } // 表示用に格納 for(var i = 0; i < result.rowCount; i++) { console.log(result.rows[i].user_id + ' ' + result.rows[i].create_date); userData[0][i] = result.rows[i].user_id; userData[1][i] = result.rows[i].create_date; } var content = ejs.render(testEjs, { 'userData': userData }); client.on('error', function(err){ return console.log(err); }); client.on('drain', client.end.bind(client)); res.writeHead(200, {'Content-Type': 'text/html'}); res.write(content); res.end(); }); }); } }); server.listen(8888); console.log('server listening...');
上のコードを実行してブラウザでlocalhost:8888に2回アクセスすると
error: invalid frontend message type 0
ってエラー出た
var client = new pg.Client(conString);
この記述はリクエストイベントの中で書くべきらしい。
client.connect();
の前あたりかな?
参考サイト
javascript - Can not close postgreSQL connection within Node.js script - Stack Overflow
Node.js WEBサーバーの基礎コード(?)
var http = require('http'); // httpをロード var server = http.createServer(); // serverオブジェクトの作成 server.on('request', doRequest); // 'request'イベントにdoRequest関数を関連付ける server.listen(8888); // ポート番号8888で待ち受け開始 console.log('Server running!'); // リクエストの処理 function doRequest(req, res) { // ヘッダ情報 res.writeHead(200, {'Content-Type': 'text/plain'}); // ボディ部分 res.write('Hello World\n'); // コンテンツ出力の完了 res.end(); }
require(moduleName)
モジュールを読み込んで利用可能にする
引数
- moduleName <String>
- 読み込みたいモジュール名
http.createServer([requestListener])
http.Serverオブジェクトを作成し、返す。
Node.jsの「サーバー」の部分
emitter.on(eventName, listener)
イベントハンドラを登録する
イベントハンドラに与えられる引数はイベントに応じて異なる。
引数
- eventName <String>
- イベント名
- listener <Function>
- 組み込む関数(処理)。イベントハンドラとして使用する関数
'request'イベントにdoRequest()関数を関連付けている。
クライアントからのリクエストの処理を行う
イベントハンドラの説明=>https://mag.osdn.jp/13/03/18/0939236/3
server.listen([port][, hostname][, backlog][, callback])
サーバーの待ち受けを開始
引数
- port <Number>
- ポート番号
listen()関数はポート番号を指定する と覚えておく。
doRequest()内の処理
'request'イベントの場合は、イベントハンドラには2つの引数が渡される。
doReqest(request, response)
- request
- クライアントからのリクエストに関する機能
- response
- サーバーからクライアントへ送るレスポンスに関する機能
この2つの引数を使って処理していく。
response.writeHead(statusCode[, statusMessage][, headers])
ヘッダー情報をレスポンスに書き出し
response.end()が呼び出される前に呼び出すこと。
引数
- statusCode
- 3桁のHTTPステータスコード
- headers
- レスポンスヘッダー情報の連想配列
今回は、「このコンテンツは標準出力ですよ」ということがクライアントに送られる。
response.write(chunk[, encoding][, callback])
ボディとなる部分のコンテンツの書き出し
何回でも.write()は呼び出せる
response.end([data][, encoding][, callback])
コンテンツの出力の完了
レスポンス処理の終わり
「writeHead」 「write」 「end」 の3つがあればクライアントへ返答できる
参考サイト
Node.jsのスクリプトの基本を覚えよう(1/5):ビギナーのための Node.jsプログラミング入門
Node.jsのスクリプトの基本を覚えよう(2/5):ビギナーのための Node.jsプログラミング入門