Hatena::ブログ(Diary)

すにぺっと

2013-06-14

functionの前に!つける方法をみてちょっと感動

| 09:37 | functionの前に!つける方法をみてちょっと感動 - すにぺっと を含むブックマーク

http://www.koikikukan.com/archives/2013/06/12-003333.php

とか

http://blog.tojiru.net/article/197270788.html

で書いてあるヤツ。

即時関数のカッコ以外をつかった書き方の話。

(function(){ /* 処理 */ })();

!function(){ /* 処理 */ }();

はどちらも即時関数

!つけると、即時関数だ!って感じがあってこっちのほうが好きかも。

ただし、これらの即時関数戻り値は違ってくるので注意。

2013-06-07

aws-sdk-jsでDynamoにアクセスする(scan filterの使い方)

| 16:05 | aws-sdk-jsでDynamoにアクセスする(scan filterの使い方) - すにぺっと を含むブックマーク

完全自分用備忘録。

aws-sdk-jsでDynamoアクセスの際、Scan filterをつかって検索するときの書き方をよく忘れるので。

var AWS = require('aws-sdk');
var conf = require('config');

AWS.config.update({
    "accessKeyId": conf.aws.accessKeyId,
    "secretAccessKey": conf.aws.secretAccessKey,
    "region": conf.aws.region });

var db = new AWS.DynamoDB();

db.scan({TableName: conf.dynamo.tableName,
    Select:"ALL_ATTRIBUTES",
    ScanFilter:{
        "category":{"AttributeValueList":[{S:"C00001"}],"ComparisonOperator":"EQ"}
    }
    }, function (err, res) {
    console.log(res);
});

2012-08-19

railwayjsで、任意のSQLを実行したい

| 14:24 | railwayjsで、任意のSQLを実行したい - すにぺっと を含むブックマーク

前回に続いてrailwayjsネタ。

railwayjsではJugglingDBを使ったO/Rマッピングが可能なので、

単純なCRUDなら生成されたモデルを使用するだけで十分。

(<作成したModel>.allとか)

しかし、テーブルをジョインしたりいろいろ複雑なことをやりたい場合、SQLをダイレクトに書く必要がある。

その場合、

    <モデル>.schema.adapter.query(
        '任意のSELECT文', function (err, res) {
    console.log(res);
        });

とする。

scheme.adapter.queryで任意のSQLが実行可能。

2012-07-21

node.jsでrailsみたいなフレームワーク-railwayjsでCRUD作ってみる

| 15:23 | node.jsでrailsみたいなフレームワーク-railwayjsでCRUD作ってみる - すにぺっと を含むブックマーク

express-on-railwayといわれていた時代に少しばかり使ってひさびさに見たらけっこう進化してたのでメモ。

公式:http://railwayjs.com/

日本語訳:http://railwayjs.jp/


node.jsでrailsライクにアプリケーションの作成ができる。

今回は既存のMySQLテーブルについてメンテする必要があったので、

既存テーブルについてのCRUD画面を作成。

とりあえずこんなテーブルがすでにあるとしよう。

CREATE TABLE `User` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

このUserテーブルについてのCRUDを作成してみる。

ではインストールから。

※node.jsとnpmはインストール済み

1.railwayのインストール

> npm install railway -g

2.アプリケーション初期化&ライブラリのインストール

>railway init sample && cd sample
>npm install -l
>npm install mysql

3.DB設定ファイル(config/database.json)更新

{ "development":{
    "driver":"mysql",
    "host":"127.0.0.1",
    "username":"ユーザー名",
    "password":"パスワード",
    "database":"DB名"
}, "test":{  //テスト用
    "driver":"mysql",
    "host":"127.0.0.1",
    "username":"ユーザー名",
    "password":"パスワード",
    "database":"DB名"
}
}

4.generaterでビューやモデルの自動生成

>railway g crud user

gはgenerateの省略形。gのあとはcontrollerやmodelが指定できる。

crudとするとscaffoldジェネレータが起動し、

コントローラーからビューやらrouteまで全部雛形が作成される。


5..db/schema.jsonでモデル定義

var User = describe('User', function () {
    property('id', Number, { index: true });
    property('name');
});

テーブルに対応するモデルを定義。

DBから引っ張ってきてここまで作ってもらえたら楽なんだが・・・


6.form.ejsを作成

よくわからなかったんだけど、

入力画面のviews/users/new.ejsとかを見ると、

<%- partial('users/form.ejs', {locals: {form: form, user: user}}) %>

という記述がある。

form.ejsってのは自動生成されていない??ので、自分で入力フォームを作成する。

<%- form.label('id', 'id') %> <%- form.input('id') %>
<%- form.label('name', 'name') %> <%- form.input('name') %>

ちなみに、index.ejsでテーブルを変更すれば、一覧表示画面の表示方法を変更したりできる。

7.起動

> railway s

localhost:3000/usersにアクセスすれば、Userテーブルに対するCRUD処理ができる。


確かに楽だ。railsはあまり使ったことないのでいまいち比較はできないけど、

pluginとかを除けばまあまあ楽につくれるのではなかろうか。

基本的にはcrudとかcontrollerとかmodelで自動生成したソースに対して

こまかい拡張や修正をしていく感じなのか?

まあ使い捨てのマスタメンテアプリならこれでいいかな。

2012-01-12

WebStormでJavaScript unit test

| 17:48 | WebStormでJavaScript unit test - すにぺっと を含むブックマーク

WebStormを使い始めて、はじめて単体テストを作ったのでそのメモ。


1.とりあえずテスト対象ファイルを用意.単純に引数を2倍にした値を返す.

src/my.js

function myFunction(x) {
    return x * 2
}

2.テストファイルを用意.

test/test.js

TestCase("myFunction Test", {
    "test myFunction-1": function() {
        assertEquals(2, myFunction(1));
    },
    "test myFunction-2": function() {
        assertEquals(0, myFunction(0));
    }
});

このままだとTestCaseの部分でエラーになる。なので、

opt + Enter を押してAdd JsTestDriver assertion framework supportを選択。


3.jsTestDriver Serverを起動

画面左下にある、「jsTestDriver Server」をクリック、start a local serverボタンをクリックしてサーバー起動。

f:id:sy-2010:20120112174405p:image

URLが表示されるので、ブラウザを起動してURLを打ち込む。

するとWebStormのjs TestDriver Seever画面のバーがReady to run testsとなり、緑のバーになる。

これでテスト実行準備OK。


4.テスト実行

右クリック→run "test.js"を選択。テストが実行される。


5.まとめて実行とか

jstdファイル(js-test-driverのconfigファイル)を用意すれば、

複数のテストをまとめたり特定のファイルを除外したりできる。

yml形式で記述する。

Test.jstd

load:
  - src/*.js
  - test/*.js

http://code.google.com/p/js-test-driver/wiki/ConfigurationFile

ここに設定情報がある。

これを右クリックしてテストを実行することもできる。