あいつの日誌β

働きながら旅しています。

Node.js

ISUCON9 予選を復習する時の手順

あらすじ 復習するためにインスタンスを作成した時のメモを残します 多少は環境構築が楽になると思うので、イメージは予選の時に使用した isucon9-qualify-v1 を使用します。ただしこのイメージにはベンチマーカーが含まれていません。 この記事では以下の作…

ShiftJIS なサイトをスクレイピングしたい

という要望がいまだにあるとかないとか。とりあえずメタ情報を取得する場合はこんな感じになりました。 const scrapeIt = require('scrape-it'); const got = require('got') const encoding = require('encoding-japanese') async function main() { const …

Github API で自分が作業した内容をとりだすスクリプト

作業内容の報告書を書く時に URL が必要になったので書いた。 const axios = require('axios') const qs = require('qs') const moment = require('moment') const BASE_URL = 'https://api.github.com/' const TOKEN = 'YOUR_TOKEN' async function getComm…

マクロンを除去したい

マクロンとは マクロン - Wikipedia マクロンは、ダイアクリティカルマーク(発音区別符号)の一つで、長音記号ともいう。これに対する伝統的な短音記号はブレーヴェである。 どうして除去したいのか? Google Map を使ったアプリを作ろうと思って reverseGe…

qs v6.5.0 以降からちょっと便利になったのでメモ

addQueryPrefix と ignoreQueryPrefix が使えるようになりました。 assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); assert.deepEqual(prefixe…

Getting applicaiont error via Datadog in Node.js

あらすじ とあるサーバーで発生したエラーログを取得したいんだけど、とりあえず Datadog 経由で取得することになった add original appender log4js の appender をでっち上げて request してみましょう % mkdir practice-log4js-appender && cd $_ % npm i…

Node.js, Express, pasport and session memo

Passport Node.js でセッション管理をしたくなったのですがやり方を忘れていたので備忘録にします。 Environments % node -v v4.2.6 Prepare % mkdir practice-passport && cd $_ % npm init --yes % git init && git add . && git commit -m 'first commit'…

Node.js で assert 書いてたら expected と actual 逆だよと言われたのでアレってなった話

Just do it mkdir practice-assert && cd $_ npm init --yes npm install assert mocha --save mkdir test cat << EOS > test/test_assert.js 'use strict'; const assert = require('assert'); describe('Mocha', () => { it('should be success', () =>{ c…

moment の format 問題

ある日不定期で発生するエラーの調査を命じられました。 で、なぜか DB に格納されている時間が意図したとおりになっていないのでこれはもしやタイムスタンプが原因か?などと張り切った。 散々時間を浪費した結果 momernt のフォーマットが違っただけだった…

sequelize tutorial(2) many to many

sequelize tutorial many to many sequelize で many to many をするやり方を思い出しやすいようにメモに残します。 準備 http://okamuuu.hatenablog.com/entry/2016/03/25/163856 モデルを作成する Role を準備します $(npm bin)/sequelize model:create --…

sequelize tutorial belongTo

sequelize で belongTo をするやり方を思い出しやすいようにメモに残します。 準備 mkdir practice-sequelize && cd $_ npm init --yes cat << EOS > .gitignore node_modules npm-debug.log* db EOS mkdir db npm install sqlite sequelize --save npm inst…

express で国際化したい

あらすじ そろそろ最初から国外を視野に入れてサービスを始めるご時世のようです。 準備 mkdir practice-i18 && cd $_ npm init --yes echo 'node_modules' > .gitignore git init && git add . && git commit -m 'initial commit' npm install express i18n…

CentOS で古い redis-server を検証する

ちょっと古めの動作環境がありまして、その動作環境をアップグレードした場合に動作がするかどうかを検証したのですが redis-server の version が古いものだったので備忘録として記事に残します。 CentOS % mkdir -p ~/vagrant/centos && cd $_ % vagrant b…

英語の勉強をしたくて学習スクリプトを書く

あらすじ 今働いている会社ではエンジニアのMTGが英語で行われております。 私は日本人エンジニアと相談しながら作業するので英語必須ではないのですが、まあどう考えても英語話せたほうが色々と話が早くなるのでとりあえず英語の勉強を始める事にしました。…

TypeScript で co + generators したい

どうした? callback 地獄は嫌いです。 それで? とりあえず環境を用意します % mkdir practice-ts-generatpr && cd $_ % tslint init % npm init --yes % npm install co --save % dtsm init % dtsm install node --save create generator.ts: /// <reference path="./typings/bundle.d.ts" /> const c</reference>…

TypeScript と Node.js で hello, world をする http server を作る

Story: あらすじ ひょんな事から TypeScript で Node.js のサーバーサイドエンジニアやる事になりました。 Enviroments: 環境 % sw_vers ProductName: Mac OS X ProductVersion: 10.11.3 BuildVersion: 15D21 % node -v v4.2.6 % npm -v 2.14.12 % tsc -v me…

Node.js で Transfer-Encoding: Chunked な Response を superaget でリクエストする場合

とあるサイトの xml を取得しようとしたら res.text も res.body も何故か undefined のままになっていた。 header をみたら Transfer-Encoding: Chunked となっていた。 その場合はこうやって書くとよいでしょう。 request .get(rootEndPoint + '/article')…

Loadtest で POST する

node.js の loadtest で Content-Type を application/x-www-form-urlencoded にしたい場合は以下のような感じにする必要があります。という備忘録 const loadtest = require('loadtest'); const options = { url: 'http://localhost:8080/bench', method: '…

CircleCI 上で Docker を立ち上げてみる by Node.js

あらすじ あるプロジェクトを作成したが開発環境をドキュメント化しないといけないのですが、Ansible などで書いたものをテストする為に Docker を使う事にします。 Enviroments % sw_vers ProductName: Mac OS X ProductVersion: 10.10.5 BuildVersion: 14F…

gulp で karma すると TypeError: Cannot redefine property: startsWith

あらすじ gulp で karma 実行しようとしたらなんかこんなんでた [17:00:20] TypeError: Cannot redefine property: startsWith at Object.defineProperty [as setDesc] (native) at module.exports.object.(anonymous function) (node_modules/karma/node_mo…

node-config の config dir を指定する方法

NODE_CONFIG_DIR を使えばよさげ node-config/config.js at master · node-config/node-config · GitHub 知らなかった。README に書いてほしい

Build a RESTful API Using Node.js 2014

Build a RESTful API Using Node.js 2014 this tutorial is copied from here. http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4 http://www.jorisooms.be/testing-your-node-api-with-supertest/ install install node…

heroku-groonga-buildpack で悩んでいる

どうした? heroku 上で groonga を使ってアプリを作りたいので heroku-buildpack-multi + heroku-groonga-buildpack を使っていたらちょっと困りました。 何が? nroonga という node.js のライブラリがあるのですが、上記の環境だと期待した結果を返してく…

mongodb の aggregate で日付をうまく sort したい

こんにちは 氷室京介が氷室京介を卒業するというニュースのおかげで日本中にザラついた心どうすればいいんだ問題を抱える人々が急増している今日この頃ですがみなさんは大丈夫ですか? 僕は常にザラついているので大丈夫です。 本題 日毎にある商品がどれぐ…

coffee を mocha してるとコケときに行数がずれる件

どうした? シャレオツな気分を味わいたいので表参道のスタバで朝から coffee を mocha していたがうっかりコケてしまいそしたら行がズレた 何なの? これを % cat mocha.coffee assert = require 'assert' assert.ok 1 is 2 こうすると mocha --compilers c…

Simple REST Demo Server 2014

This is my memo. tree % tree -I 'node_modules' . ├── package.json └── server.js 0 directories, 2 files package.json % cat package.json { "name": "Gang2", "version": "0.0.0", "description": "", "main": "index.js", "dependencies": { "restify…

Angular and Sails.JS in 10 mins documentation

This documentation is copied from youtube video this is from here. https://www.youtube.com/watch?v=Cpo0jDYltO0 create backend app % cd ~ % mkdir web && cd $_ % sails new backend % cd backend % sails generate food allow CORS on all routes. …

Simple REST Demo Server 2014

This is my memo. tree % tree -I 'node_modules' . ├── package.json └── server.js 0 directories, 2 files package.json % cat package.json { "name": "Gang2", "version": "0.0.0", "description": "", "main": "index.js", "dependencies": { "restify…

demo api server

This is my memo. var express = require("express"); var app = express(); app.use(express.logger()); app.use(express.bodyParser()); app.use(app.router); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); app.all('*', f…

ちょっと静的ページをテストしたい時に立ち上げるプチサーバー

いつも忘れてしまうのでメモ % cat server.js var connect = require('connect'); connect.createServer( connect.static(__dirname) ).listen(3000); % node server.js