2016年12月16日

npmのアップデート

npmが古いようなのでアップデート。

まずはバージョン確認

npm -v


2.15.9と言われたので最新にアップデート

npm update -g npm


もう一度バージョンを確認すると4.0.5になってるので無事アップデートできました。
posted by ねこまんま at 14:31 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2016年02月06日

npm init -y

npm initで-yオプションを使っている記事があったのでどういったオプションかメモ。

npm initだとプロンプト(対話)形式でpackage.jsonを作成するが-yオプションを使うと対話せず初期値で作ってくれる。便利

 npm init -y


-yや--yes、-f、--forceなんかでもおk
posted by ねこまんま at 10:08 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2015年11月19日

MongoDBの対話モード

MongoDBの対話モードに関するメモ。続きを読む
タグ:node.js MongoDB
posted by ねこまんま at 01:53 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2015年11月17日

続・MacでMongoDBを利用する

MacでMongoDBを利用するで設定したMongoDBを再び起動しようとしるするとエラーが出たので入れ直すメモ。

続きを読む
タグ:MongoDB node.js
posted by ねこまんま at 15:10 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2015年11月02日

nodebrew で利用しているnode.jsのバージョンを上げる

現在インストールされているnode.jsのバージョンが「v0.10.12」とかなり昔のなので久々にアップデートしてみました。続きを読む
posted by ねこまんま at 08:54 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年05月12日

御蔵入gulpタスク

作ったgulpタスクが使えなかったのでメモがてら残しておく。

やりたかったのはsassファイルなどが追加された際に、style.scssに@importでそのファイルを追加し更新して、その更新をトリガーにSassを再構築するというもの。仕組み自体はできたんだけども日本語のファイル名のファイルをインポートしようとするとSassがコンパイル時にエラーを吐くというので詰んだ。style2 のコピー.scssなんかのファイルがディレクトリ内に入るとSassのコンパイルエラーが出てgulpが落ちてしまうので使えない。

Sassのコンパイルエラーが出てもgulpが落ちないようにしたら使えそうな気もするけどひとまず御蔵入。

//Create main Sass File
gulp.task('createMainSassFile', function () {
var mainSassFile = config.path.sass+'/style.scss';
var newFile = '@charset "UTF-8";\n';
var length = 0;
var fileCheck = function(dir, cb){
fs.readdir(dir+"/.", function(err, files){
if (err) throw err;
if(length!=0)--length;
length += files.length;
files.forEach(function (file) {
var file = dir+"/"+file;
if(fs.statSync(file).isDirectory()){
fileCheck(file, cb);
}else if(!file.match(/.scss$/) || file==mainSassFile){
if(--length===0)cb();
}else{
newFile += '@import "'+file.replace(config.path.sass+"/","")+'";\n';
if(--length===0)cb();
}

});
});
}
fileCheck(config.path.sass,function(){
var fd = fs.openSync(mainSassFile, "w");
fs.writeSync(fd, newFile, 0, "UTF-8");
fs.closeSync(fd);
});

});
タグ:node.js GULP
posted by ねこまんま at 23:28 | Comment(1) | TrackBack(0) | node.js | 更新情報をチェックする

2014年05月01日

gulpをインストールしようとしたらエラーがでた件

結論から言うとnpmのバージョンが古かったのでインストールできなかったので以下のコマンドでupdateしてやればインストールできました。

npm install -g npm


インストール出来ない場合には以下の様なエラーがでます。

0 info it worked if it ends with ok
1 verbose cli [ '/Users/xxx/.nodebrew/current/bin/node',
1 verbose cli '/Users/xxx/.nodebrew/current/bin/npm',
1 verbose cli 'install',
1 verbose cli '-g',
1 verbose cli 'gulp' ]
2 info using npm@1.2.32
3 info using node@v0.10.12
4 verbose node symlink /Users/xxx/.nodebrew/current/bin/node
5 verbose read json /Users/xxx/.nodebrew/current/lib/package.json
6 verbose read json /Users/xxx/.nodebrew/current/lib/package.json
7 verbose cache add [ 'gulp', null ]
8 verbose cache add name=undefined spec="gulp" args=["gulp",null]
9 verbose parsed url { protocol: null,
9 verbose parsed url slashes: null,
9 verbose parsed url auth: null,
9 verbose parsed url host: null,
9 verbose parsed url port: null,
9 verbose parsed url hostname: null,
9 verbose parsed url hash: null,
9 verbose parsed url search: null,
9 verbose parsed url query: null,
9 verbose parsed url pathname: 'gulp',
9 verbose parsed url path: 'gulp',
9 verbose parsed url href: 'gulp' }
10 silly lockFile 9750c68d-gulp gulp
11 verbose lock gulp /Users/xxx/.npm/9750c68d-gulp.lock
12 silly lockFile 9750c68d-gulp gulp
13 silly lockFile 9750c68d-gulp gulp
14 verbose addNamed [ 'gulp', '' ]
15 verbose addNamed [ null, '' ]
16 silly lockFile 72f4391e-gulp gulp@
17 verbose lock gulp@ /Users/xxx/.npm/72f4391e-gulp.lock
18 silly addNameRange { name: 'gulp', range: '', hasData: false }
19 verbose url raw gulp
20 verbose url resolving [ 'https://registry.npmjs.org/', './gulp' ]
21 verbose url resolved https://registry.npmjs.org/gulp
22 info trying registry request attempt 1 at 12:39:01
23 verbose etag "2OKLP8BA8TBYIR1REW7VCG8II"
24 http GET https://registry.npmjs.org/gulp
25 http 304 https://registry.npmjs.org/gulp
26 silly registry.get cb [ 304,
26 silly registry.get { date: 'Thu, 01 May 2014 03:39:02 GMT',
26 silly registry.get server: 'Apache',
26 silly registry.get via: '1.1 varnish',
26 silly registry.get 'last-modified': 'Thu, 01 May 2014 03:39:02 GMT',
26 silly registry.get 'cache-control': 'max-age=1',
26 silly registry.get etag: '"2OKLP8BA8TBYIR1REW7VCG8II"',
26 silly registry.get 'x-served-by': 'cache-ty66-TYO',
26 silly registry.get 'x-cache': 'MISS',
26 silly registry.get 'x-cache-hits': '0',
26 silly registry.get 'x-timer': 'S1398915542.410850763,VS0,VE262',
26 silly registry.get vary: 'Accept',
26 silly registry.get 'content-length': '0',
26 silly registry.get 'keep-alive': 'timeout=10, max=50',
26 silly registry.get connection: 'Keep-Alive' } ]
27 verbose etag gulp from cache
28 silly addNameRange number 2 { name: 'gulp', range: '', hasData: true }
29 silly addNameRange versions [ 'gulp',
29 silly addNameRange [ '0.0.1',
29 silly addNameRange '0.0.2',
29 silly addNameRange '0.0.3',
29 silly addNameRange '0.0.4',
29 silly addNameRange '0.0.5',
29 silly addNameRange '0.0.7',
29 silly addNameRange '0.0.8',
29 silly addNameRange '0.0.9',
29 silly addNameRange '0.1.0',
29 silly addNameRange '0.2.0',
29 silly addNameRange '1.0.0',
29 silly addNameRange '1.1.0',
29 silly addNameRange '1.2.0',
29 silly addNameRange '1.2.1',
29 silly addNameRange '2.0.0',
29 silly addNameRange '2.0.1',
29 silly addNameRange '2.1.0',
29 silly addNameRange '2.2.0',
29 silly addNameRange '2.3.0',
29 silly addNameRange '2.4.0',
29 silly addNameRange '2.4.1',
29 silly addNameRange '2.6.0',
29 silly addNameRange '2.6.1',
29 silly addNameRange '2.7.0',
29 silly addNameRange '3.0.0',
29 silly addNameRange '3.1.1',
29 silly addNameRange '3.1.2',
29 silly addNameRange '3.1.3',
29 silly addNameRange '3.1.4',
29 silly addNameRange '3.2.0',
29 silly addNameRange '3.2.1',
29 silly addNameRange '3.2.2',
29 silly addNameRange '3.2.3',
29 silly addNameRange '3.2.4',
29 silly addNameRange '3.2.5',
29 silly addNameRange '3.3.0',
29 silly addNameRange '3.3.1',
29 silly addNameRange '3.3.2',
29 silly addNameRange '3.3.4',
29 silly addNameRange '3.4.0',
29 silly addNameRange '3.5.0',
29 silly addNameRange '3.5.1',
29 silly addNameRange '3.5.2',
29 silly addNameRange '3.5.5',
29 silly addNameRange '3.5.6',
29 silly addNameRange '3.6.0',
29 silly addNameRange '3.6.1',
29 silly addNameRange '3.6.2' ] ]
30 verbose addNamed [ 'gulp', '3.6.2' ]
31 verbose addNamed [ '3.6.2', '3.6.2' ]
32 silly lockFile 078bc9ff-gulp-3-6-2 gulp@3.6.2
33 verbose lock gulp@3.6.2 /Users/xxx/.npm/078bc9ff-gulp-3-6-2.lock
34 verbose read json /Users/xxx/.npm/gulp/3.6.2/package/package.json
35 silly lockFile 078bc9ff-gulp-3-6-2 gulp@3.6.2
36 silly lockFile 078bc9ff-gulp-3-6-2 gulp@3.6.2
37 silly lockFile 72f4391e-gulp gulp@
38 silly lockFile 72f4391e-gulp gulp@
39 silly resolved [ { name: 'gulp',
39 silly resolved description: 'The streaming build system',
39 silly resolved version: '3.6.2',
39 silly resolved homepage: 'http://gulpjs.com',
39 silly resolved repository: { type: 'git', url: 'gulpjs/gulp' },
39 silly resolved author:
39 silly resolved { name: 'Fractal',
39 silly resolved email: 'contact@wearefractal.com',
39 silly resolved url: 'http://wearefractal.com/' },
39 silly resolved tags: [ 'build', 'stream', 'system', 'make', 'tool', 'asset', 'pipeline' ],
39 silly resolved files: [ 'index.js', 'lib', 'bin', 'completion' ],
39 silly resolved bin: { gulp: './bin/gulp.js' },
39 silly resolved dependencies:
39 silly resolved { archy: '^0.0.2',
39 silly resolved chalk: '^0.4.0',
39 silly resolved deprecated: '^0.0.1',
39 silly resolved 'gulp-util': '^2.2.0',
39 silly resolved liftoff: '^0.9.3',
39 silly resolved orchestrator: '^0.3.0',
39 silly resolved 'pretty-hrtime': '^0.2.0',
39 silly resolved semver: '^2.2.1',
39 silly resolved tildify: '^0.2.0',
39 silly resolved 'vinyl-fs': '^0.1.3' },
39 silly resolved devDependencies:
39 silly resolved { mocha: '^1.17.0',
39 silly resolved 'mocha-lcov-reporter': '^0.0.1',
39 silly resolved coveralls: '^2.7.0',
39 silly resolved istanbul: '^0.2.3',
39 silly resolved should: '^3.1.0',
39 silly resolved rimraf: '^2.2.5',
39 silly resolved q: '^1.0.0',
39 silly resolved jshint: '^2.5.0',
39 silly resolved 'graceful-fs': '^2.0.1',
39 silly resolved mkdirp: '^0.3.5' },
39 silly resolved scripts:
39 silly resolved { test: 'jshint && mocha --reporter spec',
39 silly resolved coveralls: 'istanbul cover _mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | coveralls && rm -rf ./coverage' },
39 silly resolved engineStrict: true,
39 silly resolved engines: { node: '>= 0.9' },
39 silly resolved licenses: [ [Object] ],
39 silly resolved readme: '<p align="center">\n <a href="http://gulpjs.com">\n <img height="194" width="98" src="https://raw.github.com/gulpjs/artwork/master/gulp.png"/>\n </a>\n</p>\n\n# gulp [![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Support us][gittip-image]][gittip-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url]\n> The streaming build system\n\n## Like what we do?\n\n[Support us via gittip](https://www.gittip.com/WeAreFractal/)\n\n## Documentation\n\nFor a Getting started guide, API docs, recipes, making a plugin, etc. see the [documentation page](/docs/README.md)!\n\n## Sample gulpfile\n\nThis file is just a quick sample to give you a taste of what gulp does.\n\n```javascript\nvar gulp = require(\'gulp\');\n\nvar coffee = require(\'gulp-coffee\');\nvar concat = require(\'gulp-concat\');\nvar uglify = require(\'gulp-uglify\');\nvar imagemin = require(\'gulp-imagemin\');\n\nvar paths = {\n scripts: [\'client/js/**/*.coffee\', \'!client/external/**/*.coffee\'],\n images: \'client/img/**/*\'\n};\n\ngulp.task(\'scripts\', function() {\n // Minify and copy all JavaScript (except vendor scripts)\n return gulp.src(paths.scripts)\n .pipe(coffee())\n .pipe(uglify())\n .pipe(concat(\'all.min.js\'))\n .pipe(gulp.dest(\'build/js\'));\n});\n\n// Copy all static images\ngulp.task(\'images\', function() {\n return gulp.src(paths.images)\n // Pass in options to the task\n .pipe(imagemin({optimizationLevel: 5}))\n .pipe(gulp.dest(\'build/img\'));\n});\n\n// Rerun the task when a file changes\ngulp.task(\'watch\', function() {\n gulp.watch(paths.scripts, [\'scripts\']);\n gulp.watch(paths.images, [\'images\']);\n});\n\n// The default task (called when you run `gulp` from cli)\ngulp.task(\'default\', [\'scripts\', \'images\', \'watch\']);\n\n```\n\n## Incremental Builds\n\nWe recommend these plugins:\n\n- [gulp-changed](https://github.com/sindresorhus/gulp-changed)\n- [gulp-cached](https://github.com/wearefractal/gulp-cached)\n- [gulp-newer](https://github.com/tschaub/gulp-newer)\n- [gulp-remember](https://github.com/ahaurw01/gulp-remember)\n\n## Want to contribute?\n\nAnyone can help make this project better - check out the [Contributing guide](/CONTRIBUTING.md)!\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/wearefractal/gulp/trend.png)](https://bitdeli.com/free "Bitdeli Badge")\n\n[gittip-url]: https://www.gittip.com/WeAreFractal/\n[gittip-image]: http://img.shields.io/gittip/WeAreFractal.svg\n\n[downloads-image]: http://img.shields.io/npm/dm/gulp.svg\n[npm-url]: https://npmjs.org/package/gulp\n[npm-image]: http://img.shields.io/npm/v/gulp.svg\n\n[travis-url]: https://travis-ci.org/gulpjs/gulp\n[travis-image]: http://img.shields.io/travis/gulpjs/gulp.svg\n\n[coveralls-url]: https://coveralls.io/r/gulpjs/gulp\n[coveralls-image]: http://img.shields.io/coveralls/gulpjs/gulp/master.svg\n',
39 silly resolved readmeFilename: 'README.md',
39 silly resolved _id: 'gulp@3.6.2',
39 silly resolved _from: 'gulp@' } ]
40 info install gulp@3.6.2 into /Users/xxx/.nodebrew/current/lib
41 info installOne gulp@3.6.2
42 verbose from cache /Users/xxx/.npm/gulp/3.6.2/package/package.json
43 info /Users/xxx/.nodebrew/current/lib/node_modules/gulp unbuild
44 verbose read json /Users/xxx/.nodebrew/current/lib/node_modules/gulp/package.json
45 verbose tar unpack /Users/xxx/.npm/gulp/3.6.2/package.tgz
46 silly lockFile aeedfb3c-ew-current-lib-node-modules-gulp tar:///Users/xxx/.nodebrew/current/lib/node_modules/gulp
47 verbose lock tar:///Users/xxx/.nodebrew/current/lib/node_modules/gulp /Users/xxx/.npm/aeedfb3c-ew-current-lib-node-modules-gulp.lock
48 silly lockFile 030068b2-azuma-npm-gulp-3-6-2-package-tgz tar:///Users/xxx/.npm/gulp/3.6.2/package.tgz
49 verbose lock tar:///Users/xxx/.npm/gulp/3.6.2/package.tgz /Users/xxx/.npm/030068b2-azuma-npm-gulp-3-6-2-package-tgz.lock
50 silly gunzTarPerm modes [ '755', '644' ]
51 silly gunzTarPerm extractEntry package.json
52 silly gunzTarPerm extractEntry README.md
53 silly gunzTarPerm extractEntry index.js
54 silly gunzTarPerm extractEntry bin/gulp.js
55 silly gunzTarPerm extractEntry completion/README.md
56 silly gunzTarPerm extractEntry completion/bash
57 silly gunzTarPerm extractEntry completion/zsh
58 silly gunzTarPerm extractEntry lib/completion.js
59 silly gunzTarPerm extractEntry lib/taskTree.js
60 verbose read json /Users/xxx/.nodebrew/current/lib/node_modules/gulp/package.json
61 silly lockFile aeedfb3c-ew-current-lib-node-modules-gulp tar:///Users/xxx/.nodebrew/current/lib/node_modules/gulp
62 silly lockFile aeedfb3c-ew-current-lib-node-modules-gulp tar:///Users/xxx/.nodebrew/current/lib/node_modules/gulp
63 silly lockFile 030068b2-azuma-npm-gulp-3-6-2-package-tgz tar:///Users/xxx/.npm/gulp/3.6.2/package.tgz
64 silly lockFile 030068b2-azuma-npm-gulp-3-6-2-package-tgz tar:///Users/xxx/.npm/gulp/3.6.2/package.tgz
65 info preinstall gulp@3.6.2
66 verbose from cache /Users/xxx/.nodebrew/current/lib/node_modules/gulp/package.json
67 verbose readDependencies using package.json deps
68 verbose from cache /Users/xxx/.nodebrew/current/lib/node_modules/gulp/package.json
69 verbose readDependencies using package.json deps
70 verbose cache add [ 'archy@^0.0.2', null ]
71 verbose cache add name=undefined spec="archy@^0.0.2" args=["archy@^0.0.2",null]
72 verbose parsed url { protocol: null,
72 verbose parsed url slashes: null,
72 verbose parsed url auth: null,
72 verbose parsed url host: null,
72 verbose parsed url port: null,
72 verbose parsed url hostname: null,
72 verbose parsed url hash: null,
72 verbose parsed url search: null,
72 verbose parsed url query: null,
72 verbose parsed url pathname: 'archy@^0.0.2',
72 verbose parsed url path: 'archy@^0.0.2',
72 verbose parsed url href: 'archy@^0.0.2' }
73 verbose cache add name="archy" spec="^0.0.2" args=["archy","^0.0.2"]
74 verbose parsed url { protocol: null,
74 verbose parsed url slashes: null,
74 verbose parsed url auth: null,
74 verbose parsed url host: null,
74 verbose parsed url port: null,
74 verbose parsed url hostname: null,
74 verbose parsed url hash: null,
74 verbose parsed url search: null,
74 verbose parsed url query: null,
74 verbose parsed url pathname: '^0.0.2',
74 verbose parsed url path: '^0.0.2',
74 verbose parsed url href: '^0.0.2' }
75 verbose addNamed [ 'archy', '^0.0.2' ]
76 verbose addNamed [ null, null ]
77 silly lockFile bdbf708d-archy-0-0-2 archy@^0.0.2
78 verbose lock archy@^0.0.2 /Users/xxx/.npm/bdbf708d-archy-0-0-2.lock
79 verbose cache add [ 'chalk@^0.4.0', null ]
80 verbose cache add name=undefined spec="chalk@^0.4.0" args=["chalk@^0.4.0",null]
81 verbose parsed url { protocol: null,
81 verbose parsed url slashes: null,
81 verbose parsed url auth: null,
81 verbose parsed url host: null,
81 verbose parsed url port: null,
81 verbose parsed url hostname: null,
81 verbose parsed url hash: null,
81 verbose parsed url search: null,
81 verbose parsed url query: null,
81 verbose parsed url pathname: 'chalk@^0.4.0',
81 verbose parsed url path: 'chalk@^0.4.0',
81 verbose parsed url href: 'chalk@^0.4.0' }
82 verbose cache add name="chalk" spec="^0.4.0" args=["chalk","^0.4.0"]
83 verbose parsed url { protocol: null,
83 verbose parsed url slashes: null,
83 verbose parsed url auth: null,
83 verbose parsed url host: null,
83 verbose parsed url port: null,
83 verbose parsed url hostname: null,
83 verbose parsed url hash: null,
83 verbose parsed url search: null,
83 verbose parsed url query: null,
83 verbose parsed url pathname: '^0.4.0',
83 verbose parsed url path: '^0.4.0',
83 verbose parsed url href: '^0.4.0' }
84 verbose addNamed [ 'chalk', '^0.4.0' ]
85 verbose addNamed [ null, null ]
86 silly lockFile b2f4396d-chalk-0-4-0 chalk@^0.4.0
87 verbose lock chalk@^0.4.0 /Users/xxx/.npm/b2f4396d-chalk-0-4-0.lock
88 info addNameTag [ 'archy', '^0.0.2' ]
89 verbose cache add [ 'deprecated@^0.0.1', null ]
90 verbose cache add name=undefined spec="deprecated@^0.0.1" args=["deprecated@^0.0.1",null]
91 verbose parsed url { protocol: null,
91 verbose parsed url slashes: null,
91 verbose parsed url auth: null,
91 verbose parsed url host: null,
91 verbose parsed url port: null,
91 verbose parsed url hostname: null,
91 verbose parsed url hash: null,
91 verbose parsed url search: null,
91 verbose parsed url query: null,
91 verbose parsed url pathname: 'deprecated@^0.0.1',
91 verbose parsed url path: 'deprecated@^0.0.1',
91 verbose parsed url href: 'deprecated@^0.0.1' }
92 verbose cache add name="deprecated" spec="^0.0.1" args=["deprecated","^0.0.1"]
93 verbose parsed url { protocol: null,
93 verbose parsed url slashes: null,
93 verbose parsed url auth: null,
93 verbose parsed url host: null,
93 verbose parsed url port: null,
93 verbose parsed url hostname: null,
93 verbose parsed url hash: null,
93 verbose parsed url search: null,
93 verbose parsed url query: null,
93 verbose parsed url pathname: '^0.0.1',
93 verbose parsed url path: '^0.0.1',
93 verbose parsed url href: '^0.0.1' }
94 verbose addNamed [ 'deprecated', '^0.0.1' ]
95 verbose addNamed [ null, null ]
96 silly lockFile 0e32a569-deprecated-0-0-1 deprecated@^0.0.1
97 verbose lock deprecated@^0.0.1 /Users/xxx/.npm/0e32a569-deprecated-0-0-1.lock
98 verbose cache add [ 'gulp-util@^2.2.0', null ]
99 verbose cache add name=undefined spec="gulp-util@^2.2.0" args=["gulp-util@^2.2.0",null]
100 verbose parsed url { protocol: null,
100 verbose parsed url slashes: null,
100 verbose parsed url auth: null,
100 verbose parsed url host: null,
100 verbose parsed url port: null,
100 verbose parsed url hostname: null,
100 verbose parsed url hash: null,
100 verbose parsed url search: null,
100 verbose parsed url query: null,
100 verbose parsed url pathname: 'gulp-util@^2.2.0',
100 verbose parsed url path: 'gulp-util@^2.2.0',
100 verbose parsed url href: 'gulp-util@^2.2.0' }
101 verbose cache add name="gulp-util" spec="^2.2.0" args=["gulp-util","^2.2.0"]
102 verbose parsed url { protocol: null,
102 verbose parsed url slashes: null,
102 verbose parsed url auth: null,
102 verbose parsed url host: null,
102 verbose parsed url port: null,
102 verbose parsed url hostname: null,
102 verbose parsed url hash: null,
102 verbose parsed url search: null,
102 verbose parsed url query: null,
102 verbose parsed url pathname: '^2.2.0',
102 verbose parsed url path: '^2.2.0',
102 verbose parsed url href: '^2.2.0' }
103 verbose addNamed [ 'gulp-util', '^2.2.0' ]
104 verbose addNamed [ null, null ]
105 silly lockFile b0a108b6-gulp-util-2-2-0 gulp-util@^2.2.0
106 verbose lock gulp-util@^2.2.0 /Users/xxx/.npm/b0a108b6-gulp-util-2-2-0.lock
107 info addNameTag [ 'chalk', '^0.4.0' ]
108 info addNameTag [ 'deprecated', '^0.0.1' ]
109 verbose cache add [ 'liftoff@^0.9.3', null ]
110 verbose cache add name=undefined spec="liftoff@^0.9.3" args=["liftoff@^0.9.3",null]
111 verbose parsed url { protocol: null,
111 verbose parsed url slashes: null,
111 verbose parsed url auth: null,
111 verbose parsed url host: null,
111 verbose parsed url port: null,
111 verbose parsed url hostname: null,
111 verbose parsed url hash: null,
111 verbose parsed url search: null,
111 verbose parsed url query: null,
111 verbose parsed url pathname: 'liftoff@^0.9.3',
111 verbose parsed url path: 'liftoff@^0.9.3',
111 verbose parsed url href: 'liftoff@^0.9.3' }
112 verbose cache add name="liftoff" spec="^0.9.3" args=["liftoff","^0.9.3"]
113 verbose parsed url { protocol: null,
113 verbose parsed url slashes: null,
113 verbose parsed url auth: null,
113 verbose parsed url host: null,
113 verbose parsed url port: null,
113 verbose parsed url hostname: null,
113 verbose parsed url hash: null,
113 verbose parsed url search: null,
113 verbose parsed url query: null,
113 verbose parsed url pathname: '^0.9.3',
113 verbose parsed url path: '^0.9.3',
113 verbose parsed url href: '^0.9.3' }
114 verbose addNamed [ 'liftoff', '^0.9.3' ]
115 verbose addNamed [ null, null ]
116 silly lockFile e16e48d9-liftoff-0-9-3 liftoff@^0.9.3
117 verbose lock liftoff@^0.9.3 /Users/xxx/.npm/e16e48d9-liftoff-0-9-3.lock
118 info addNameTag [ 'gulp-util', '^2.2.0' ]
119 info addNameTag [ 'liftoff', '^0.9.3' ]
120 verbose cache add [ 'orchestrator@^0.3.0', null ]
121 verbose cache add name=undefined spec="orchestrator@^0.3.0" args=["orchestrator@^0.3.0",null]
122 verbose parsed url { protocol: null,
122 verbose parsed url slashes: null,
122 verbose parsed url auth: null,
122 verbose parsed url host: null,
122 verbose parsed url port: null,
122 verbose parsed url hostname: null,
122 verbose parsed url hash: null,
122 verbose parsed url search: null,
122 verbose parsed url query: null,
122 verbose parsed url pathname: 'orchestrator@^0.3.0',
122 verbose parsed url path: 'orchestrator@^0.3.0',
122 verbose parsed url href: 'orchestrator@^0.3.0' }
123 verbose cache add name="orchestrator" spec="^0.3.0" args=["orchestrator","^0.3.0"]
124 verbose parsed url { protocol: null,
124 verbose parsed url slashes: null,
124 verbose parsed url auth: null,
124 verbose parsed url host: null,
124 verbose parsed url port: null,
124 verbose parsed url hostname: null,
124 verbose parsed url hash: null,
124 verbose parsed url search: null,
124 verbose parsed url query: null,
124 verbose parsed url pathname: '^0.3.0',
124 verbose parsed url path: '^0.3.0',
124 verbose parsed url href: '^0.3.0' }
125 verbose addNamed [ 'orchestrator', '^0.3.0' ]
126 verbose addNamed [ null, null ]
127 silly lockFile 74d9c599-orchestrator-0-3-0 orchestrator@^0.3.0
128 verbose lock orchestrator@^0.3.0 /Users/xxx/.npm/74d9c599-orchestrator-0-3-0.lock
129 verbose url raw archy
130 verbose url resolving [ 'https://registry.npmjs.org/', './archy' ]
131 verbose url resolved https://registry.npmjs.org/archy
132 info trying registry request attempt 1 at 12:39:02
133 verbose etag "8G937WVUQ9MMZVXIHKCSTNOPR"
134 http GET https://registry.npmjs.org/archy
135 verbose url raw chalk
136 verbose url resolving [ 'https://registry.npmjs.org/', './chalk' ]
137 verbose url resolved https://registry.npmjs.org/chalk
138 info trying registry request attempt 1 at 12:39:02
139 verbose etag "8N90ZCS3GC42U2PJJKL158M7V"
140 http GET https://registry.npmjs.org/chalk
141 verbose cache add [ 'pretty-hrtime@^0.2.0', null ]
142 verbose cache add name=undefined spec="pretty-hrtime@^0.2.0" args=["pretty-hrtime@^0.2.0",null]
143 verbose parsed url { protocol: null,
143 verbose parsed url slashes: null,
143 verbose parsed url auth: null,
143 verbose parsed url host: null,
143 verbose parsed url port: null,
143 verbose parsed url hostname: null,
143 verbose parsed url hash: null,
143 verbose parsed url search: null,
143 verbose parsed url query: null,
143 verbose parsed url pathname: 'pretty-hrtime@^0.2.0',
143 verbose parsed url path: 'pretty-hrtime@^0.2.0',
143 verbose parsed url href: 'pretty-hrtime@^0.2.0' }
144 verbose cache add name="pretty-hrtime" spec="^0.2.0" args=["pretty-hrtime","^0.2.0"]
145 verbose parsed url { protocol: null,
145 verbose parsed url slashes: null,
145 verbose parsed url auth: null,
145 verbose parsed url host: null,
145 verbose parsed url port: null,
145 verbose parsed url hostname: null,
145 verbose parsed url hash: null,
145 verbose parsed url search: null,
145 verbose parsed url query: null,
145 verbose parsed url pathname: '^0.2.0',
145 verbose parsed url path: '^0.2.0',
145 verbose parsed url href: '^0.2.0' }
146 verbose addNamed [ 'pretty-hrtime', '^0.2.0' ]
147 verbose addNamed [ null, null ]
148 silly lockFile 3ac7556f-pretty-hrtime-0-2-0 pretty-hrtime@^0.2.0
149 verbose lock pretty-hrtime@^0.2.0 /Users/xxx/.npm/3ac7556f-pretty-hrtime-0-2-0.lock
150 verbose cache add [ 'semver@^2.2.1', null ]
151 verbose cache add name=undefined spec="semver@^2.2.1" args=["semver@^2.2.1",null]
152 verbose parsed url { protocol: null,
152 verbose parsed url slashes: null,
152 verbose parsed url auth: null,
152 verbose parsed url host: null,
152 verbose parsed url port: null,
152 verbose parsed url hostname: null,
152 verbose parsed url hash: null,
152 verbose parsed url search: null,
152 verbose parsed url query: null,
152 verbose parsed url pathname: 'semver@^2.2.1',
152 verbose parsed url path: 'semver@^2.2.1',
152 verbose parsed url href: 'semver@^2.2.1' }
153 verbose cache add name="semver" spec="^2.2.1" args=["semver","^2.2.1"]
154 verbose parsed url { protocol: null,
154 verbose parsed url slashes: null,
154 verbose parsed url auth: null,
154 verbose parsed url host: null,
154 verbose parsed url port: null,
154 verbose parsed url hostname: null,
154 verbose parsed url hash: null,
154 verbose parsed url search: null,
154 verbose parsed url query: null,
154 verbose parsed url pathname: '^2.2.1',
154 verbose parsed url path: '^2.2.1',
154 verbose parsed url href: '^2.2.1' }
155 verbose addNamed [ 'semver', '^2.2.1' ]
156 verbose addNamed [ null, null ]
157 silly lockFile d8627689-semver-2-2-1 semver@^2.2.1
158 verbose lock semver@^2.2.1 /Users/xxx/.npm/d8627689-semver-2-2-1.lock
159 verbose cache add [ 'tildify@^0.2.0', null ]
160 verbose cache add name=undefined spec="tildify@^0.2.0" args=["tildify@^0.2.0",null]
161 verbose parsed url { protocol: null,
161 verbose parsed url slashes: null,
161 verbose parsed url auth: null,
161 verbose parsed url host: null,
161 verbose parsed url port: null,
161 verbose parsed url hostname: null,
161 verbose parsed url hash: null,
161 verbose parsed url search: null,
161 verbose parsed url query: null,
161 verbose parsed url pathname: 'tildify@^0.2.0',
161 verbose parsed url path: 'tildify@^0.2.0',
161 verbose parsed url href: 'tildify@^0.2.0' }
162 verbose cache add name="tildify" spec="^0.2.0" args=["tildify","^0.2.0"]
163 verbose parsed url { protocol: null,
163 verbose parsed url slashes: null,
163 verbose parsed url auth: null,
163 verbose parsed url host: null,
163 verbose parsed url port: null,
163 verbose parsed url hostname: null,
163 verbose parsed url hash: null,
163 verbose parsed url search: null,
163 verbose parsed url query: null,
163 verbose parsed url pathname: '^0.2.0',
163 verbose parsed url path: '^0.2.0',
163 verbose parsed url href: '^0.2.0' }
164 verbose addNamed [ 'tildify', '^0.2.0' ]
165 verbose addNamed [ null, null ]
166 silly lockFile b2e10727-tildify-0-2-0 tildify@^0.2.0
167 verbose lock tildify@^0.2.0 /Users/xxx/.npm/b2e10727-tildify-0-2-0.lock
168 verbose cache add [ 'vinyl-fs@^0.1.3', null ]
169 verbose cache add name=undefined spec="vinyl-fs@^0.1.3" args=["vinyl-fs@^0.1.3",null]
170 verbose parsed url { protocol: null,
170 verbose parsed url slashes: null,
170 verbose parsed url auth: null,
170 verbose parsed url host: null,
170 verbose parsed url port: null,
170 verbose parsed url hostname: null,
170 verbose parsed url hash: null,
170 verbose parsed url search: null,
170 verbose parsed url query: null,
170 verbose parsed url pathname: 'vinyl-fs@^0.1.3',
170 verbose parsed url path: 'vinyl-fs@^0.1.3',
170 verbose parsed url href: 'vinyl-fs@^0.1.3' }
171 verbose cache add name="vinyl-fs" spec="^0.1.3" args=["vinyl-fs","^0.1.3"]
172 verbose parsed url { protocol: null,
172 verbose parsed url slashes: null,
172 verbose parsed url auth: null,
172 verbose parsed url host: null,
172 verbose parsed url port: null,
172 verbose parsed url hostname: null,
172 verbose parsed url hash: null,
172 verbose parsed url search: null,
172 verbose parsed url query: null,
172 verbose parsed url pathname: '^0.1.3',
172 verbose parsed url path: '^0.1.3',
172 verbose parsed url href: '^0.1.3' }
173 verbose addNamed [ 'vinyl-fs', '^0.1.3' ]
174 verbose addNamed [ null, null ]
175 silly lockFile 27790ca9-vinyl-fs-0-1-3 vinyl-fs@^0.1.3
176 verbose lock vinyl-fs@^0.1.3 /Users/xxx/.npm/27790ca9-vinyl-fs-0-1-3.lock
177 info addNameTag [ 'orchestrator', '^0.3.0' ]
178 verbose url raw deprecated
179 verbose url resolving [ 'https://registry.npmjs.org/', './deprecated' ]
180 verbose url resolved https://registry.npmjs.org/deprecated
181 info trying registry request attempt 1 at 12:39:02
182 verbose etag "9K35WQCJOF7AXVG5WF6XI54C8"
183 http GET https://registry.npmjs.org/deprecated
184 info addNameTag [ 'pretty-hrtime', '^0.2.0' ]
185 info addNameTag [ 'semver', '^2.2.1' ]
186 info addNameTag [ 'tildify', '^0.2.0' ]
187 info addNameTag [ 'vinyl-fs', '^0.1.3' ]
188 verbose url raw gulp-util
189 verbose url resolving [ 'https://registry.npmjs.org/', './gulp-util' ]
190 verbose url resolved https://registry.npmjs.org/gulp-util
191 info trying registry request attempt 1 at 12:39:02
192 verbose etag "2IOSKPA6BYL3MDIVAI8M2PA9D"
193 http GET https://registry.npmjs.org/gulp-util
194 verbose url raw liftoff
195 verbose url resolving [ 'https://registry.npmjs.org/', './liftoff' ]
196 verbose url resolved https://registry.npmjs.org/liftoff
197 info trying registry request attempt 1 at 12:39:02
198 verbose etag "BE36708E06SQIZE939E1VUZ2Q"
199 http GET https://registry.npmjs.org/liftoff
200 verbose url raw pretty-hrtime
201 verbose url resolving [ 'https://registry.npmjs.org/', './pretty-hrtime' ]
202 verbose url resolved https://registry.npmjs.org/pretty-hrtime
203 info trying registry request attempt 1 at 12:39:02
204 verbose etag "EXBKHX110EX1PZMJGJK47SP0Q"
205 http GET https://registry.npmjs.org/pretty-hrtime
206 verbose url raw semver
207 verbose url resolving [ 'https://registry.npmjs.org/', './semver' ]
208 verbose url resolved https://registry.npmjs.org/semver
209 info trying registry request attempt 1 at 12:39:02
210 verbose etag "WOQCOHS95XWY6XL8H45AFWGP"
211 http GET https://registry.npmjs.org/semver
212 verbose url raw tildify
213 verbose url resolving [ 'https://registry.npmjs.org/', './tildify' ]
214 verbose url resolved https://registry.npmjs.org/tildify
215 info trying registry request attempt 1 at 12:39:02
216 verbose etag "7RTIQ6D5Y2SCN3J4CIQCX3FT0"
217 http GET https://registry.npmjs.org/tildify
218 verbose url raw orchestrator
219 verbose url resolving [ 'https://registry.npmjs.org/', './orchestrator' ]
220 verbose url resolved https://registry.npmjs.org/orchestrator
221 info trying registry request attempt 1 at 12:39:02
222 verbose etag "COVT4T4ZXHD6ZW8G88Z3CK9U3"
223 http GET https://registry.npmjs.org/orchestrator
224 verbose url raw vinyl-fs
225 verbose url resolving [ 'https://registry.npmjs.org/', './vinyl-fs' ]
226 verbose url resolved https://registry.npmjs.org/vinyl-fs
227 info trying registry request attempt 1 at 12:39:02
228 verbose etag "7M2L4H570UK7EOEL84PNJP9NH"
229 http GET https://registry.npmjs.org/vinyl-fs
230 http 304 https://registry.npmjs.org/archy
231 silly registry.get cb [ 304,
231 silly registry.get { date: 'Thu, 01 May 2014 03:39:02 GMT',
231 silly registry.get server: 'Apache',
231 silly registry.get via: '1.1 varnish',
231 silly registry.get 'last-modified': 'Thu, 01 May 2014 03:39:03 GMT',
231 silly registry.get 'cache-control': 'max-age=1',
231 silly registry.get etag: '"8G937WVUQ9MMZVXIHKCSTNOPR"',
231 silly registry.get 'x-served-by': 'cache-ty66-TYO',
231 silly registry.get 'x-cache': 'HIT',
231 silly registry.get 'x-cache-hits': '1',
231 silly registry.get 'x-timer': 'S1398915542.828933954,VS0,VE243',
231 silly registry.get vary: 'Accept',
231 silly registry.get 'content-length': '0',
231 silly registry.get 'keep-alive': 'timeout=10, max=50',
231 silly registry.get connection: 'Keep-Alive' } ]
232 verbose etag archy from cache
233 silly lockFile bdbf708d-archy-0-0-2 archy@^0.0.2
234 silly lockFile bdbf708d-archy-0-0-2 archy@^0.0.2
235 verbose about to build /Users/xxx/.nodebrew/current/lib/node_modules/gulp
236 info /Users/xxx/.nodebrew/current/lib/node_modules/gulp unbuild
237 verbose from cache /Users/xxx/.nodebrew/current/lib/node_modules/gulp/package.json
238 info preuninstall gulp@3.6.2
239 info uninstall gulp@3.6.2
240 http 304 https://registry.npmjs.org/chalk
241 silly registry.get cb [ 304,
241 silly registry.get { date: 'Thu, 01 May 2014 03:39:02 GMT',
241 silly registry.get server: 'Apache',
241 silly registry.get via: '1.1 varnish',
241 silly registry.get 'last-modified': 'Thu, 01 May 2014 03:39:03 GMT',
241 silly registry.get 'cache-control': 'max-age=1',
241 silly registry.get etag: '"8N90ZCS3GC42U2PJJKL158M7V"',
241 silly registry.get 'x-served-by': 'cache-ty66-TYO',
241 silly registry.get 'x-cache': 'HIT',
241 silly registry.get 'x-cache-hits': '1',
241 silly registry.get 'x-timer': 'S1398915542.829024315,VS0,VE254',
241 silly registry.get vary: 'Accept',
241 silly registry.get 'content-length': '0',
241 silly registry.get 'keep-alive': 'timeout=10, max=50',
241 silly registry.get connection: 'Keep-Alive' } ]
242 verbose etag chalk from cache
243 http 304 https://registry.npmjs.org/deprecated
244 silly registry.get cb [ 304,
244 silly registry.get { date: 'Thu, 01 May 2014 03:39:02 GMT',
244 silly registry.get server: 'Apache',
244 silly registry.get via: '1.1 varnish',
244 silly registry.get 'last-modified': 'Thu, 01 May 2014 03:39:03 GMT',
244 silly registry.get 'cache-control': 'max-age=1',
244 silly registry.get etag: '"9K35WQCJOF7AXVG5WF6XI54C8"',
244 silly registry.get 'x-served-by': 'cache-ty68-TYO',
244 silly registry.get 'x-cache': 'MISS',
244 silly registry.get 'x-cache-hits': '0',
244 silly registry.get 'x-timer': 'S1398915542.836422443,VS0,VE260',
244 silly registry.get vary: 'Accept',
244 silly registry.get 'content-length': '0',
244 silly registry.get 'keep-alive': 'timeout=10, max=50',
244 silly registry.get connection: 'Keep-Alive' } ]
245 verbose etag deprecated from cache
246 http 304 https://registry.npmjs.org/liftoff
247 silly registry.get cb [ 304,
247 silly registry.get { date: 'Thu, 01 May 2014 03:39:02 GMT',
247 silly registry.get server: 'Apache',
247 silly registry.get via: '1.1 varnish',
247 silly registry.get 'last-modified': 'Thu, 01 May 2014 03:39:03 GMT',
247 silly registry.get 'cache-control': 'max-age=1',
247 silly registry.get etag: '"BE36708E06SQIZE939E1VUZ2Q"',
247 silly registry.get 'x-served-by': 'cache-ty66-TYO',
247 silly registry.get 'x-cache': 'MISS',
247 silly registry.get 'x-cache-hits': '0',
247 silly registry.get 'x-timer': 'S1398915542.836016178,VS0,VE271',
247 silly registry.get vary: 'Accept',
247 silly registry.get 'content-length': '0',
247 silly registry.get 'keep-alive': 'timeout=10, max=50',
247 silly registry.get connection: 'Keep-Alive' } ]
248 verbose etag liftoff from cache
249 verbose true,/Users/xxx/.nodebrew/current/lib/node_modules,/Users/xxx/.nodebrew/current/lib/node_modules unbuild gulp@3.6.2
250 verbose /Users/xxx/.nodebrew/current/bin,[object Object] binRoot
251 info postuninstall gulp@3.6.2
252 silly lockFile 0e32a569-deprecated-0-0-1 deprecated@^0.0.1
253 silly lockFile 0e32a569-deprecated-0-0-1 deprecated@^0.0.1
254 silly lockFile e16e48d9-liftoff-0-9-3 liftoff@^0.9.3
255 silly lockFile e16e48d9-liftoff-0-9-3 liftoff@^0.9.3
256 silly lockFile b2f4396d-chalk-0-4-0 chalk@^0.4.0
257 silly lockFile b2f4396d-chalk-0-4-0 chalk@^0.4.0
258 error Error: No compatible version found: archy@'^0.0.2'
258 error Valid install targets:
258 error ["0.0.0","0.0.1","0.0.2"]
258 error at installTargetsError (/Users/xxx/.nodebrew/node/v0.10.12/lib/node_modules/npm/lib/cache.js:719:10)
258 error at /Users/xxx/.nodebrew/node/v0.10.12/lib/node_modules/npm/lib/cache.js:641:10
258 error at saved (/Users/xxx/.nodebrew/node/v0.10.12/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:138:7)
258 error at Object.oncomplete (fs.js:107:15)
259 error If you need help, you may report this log at:
259 error <http://github.com/isaacs/npm/issues>
259 error or email it to:
259 error <npm-@googlegroups.com>
260 error System Darwin 13.1.0
261 error command "/Users/xxx/.nodebrew/current/bin/node" "/Users/xxx/.nodebrew/current/bin/npm" "install" "-g" "gulp"
262 error cwd /Users/xxx/Desktop/gulp
263 error node -v v0.10.12
264 error npm -v 1.2.32
265 verbose exit [ 1, true ]
タグ:GULP
posted by ねこまんま at 12:46 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月30日

node.jsでExpress4系を使う

node.jsでExpressを使おうと思ったら4系になっててハマったのでメモ書き。

Expressのインストールはこれまでどおり。

sudo npm install -g express


次のコマンドでExpressのバージョンを調べたところ4.1.1

npm info express version


4系からはexpressコマンドはデフォルトでは利用できず、「express-generator」を合わせてインストールする必要がある。

sudo npm install -g express-generator


インストールするとexpressコマンドでプロジェクトを作成できるので

express myapp


作成したプロジェクトに移動してnodeモジュールのインストール。

cd myapp && npm install


アプリケーションの実行は以下のコード。これでExpressのサーバーが立ち上がります。

DEBUG=my-application ./bin/www
タグ:node.js
posted by ねこまんま at 14:51 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月24日

Jadeで外部ファイルの読み込み

Jadeで外部ファイルの読み込むにはincludeとextendという2種類の方法があります。

includeは以下のような感じ

index.jade

h1 タイトル
include includeFile


includeFile.jade

p テキスト


これを展開すると以下の様なHTMLになる

<h1>タイトル</h1>
<p>テキスト</p>


純粋にファイルを読み込んで表示ができる

extendは以下の様な感じ

extend.jade

p
block text
|text


index.jade

h1 タイトル
extend extend
block text
|テキスト


<h1>タイトル</h1>
<p>テキスト</p>

タグ:include JADE
posted by ねこまんま at 14:17 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月23日

Jadeの基本

Jadeの基本

次のように書くと

doctype
html
head
meta(charset="utf-8")
title test
body
h1 test


次のようにコンパイルされる。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<h1 id="id00">test</h1>
<p class="class00">test</p>
</body>
</html>


基本はインデント記法で属性は(name="value")もしくは(name='value')で、idは#id名をclassは.class名を続けて書く。テキスト等は半角スペースを入れて書く。実際は改行されずに上記のコードが出力されます。

改行を入れたい場合は改行してインデントして|(パイプ)を入れる。

p hogehoge
|fugafuga


<p>hogehoge
fugafuga</p>


JavaScriptのコードを入れたり、HTMLをそのまま書きたい場合は.(ドット)で終わらした後にインデントして記述。

script.
$(function(){
alert("ok");
});


<script>$(function(){
alert("ok");
});</script>


-(ハイフン)で変数などを定義できるので#{変数名}でテンプレート内に記述できる

- hoge = "ほげ"
p #{hoge}


<p>ほげ</p>


=(イコール)で直接挿入することも可能

- hoge = "ほげ"
p=hoge


<p>ほげ</p>


=の後はJavaScriptの命令が記述できる



<p>ほげhoge3</p>


node.jsで定義した変数を渡したい場合は以下のように実行時に引数でわたしてあげる

jade.compile(index)({
fuga:"fuga"
});


if文、else if文、else文などもインデント記法で

- tenki = "曇り"

if tenki == "晴れ"
p 日傘を持っていく
else if tenki == "雨"
p 傘を持っていく
else
p 傘を持っていかない


for in構文も利用可能

- arr = [1,2,3]

for value in arr
p=value


同様にeach inも利用可能

each value in arr
p=value


通常のfor文を使いたい場合などは-をつかってJS構文を利用するとよい。JavaScripが使えるので複雑なこともできる

- arr = ["a","b","c","d"]
- for(var i = 0; i<arr.length ;i++){
- if(i==arr.length-1){
p.last-child=arr[i]
- }else{
p=arr[i]
- }
- }
タグ:JADE node.js
posted by ねこまんま at 15:38 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

node.jsでJadeを利用する

node.jsでJadeを利用する方法。

まずはJadeモジュールのインストール

npm install jade --save-dev


流れとしては、まずJadeモジュールを読み込み

var jade = require('jade');


fsオブジェクトのreadFileSyncメソッドでテンプレートファイルを読み込み

var index = fs.readFileSync('./index.jade','utf-8');


jadeオブジェクトのcompileメソッドでテンプレートをコンパイル後(コンパイル結果は関数オブジェクト)に実行します。

var tmp = jade.compile(index)();


一連の流れをファイルに落としこむと以下の様な感じです。

var http = require("http");
var fs = require('fs');
var url = require('url');
var jade = require('jade');

var index = fs.readFileSync('./index.jade','utf-8');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data;
}).on('end',function(){
var path = url.parse(req.url);
switch(path.pathname){
case '/':
var tmp = jade.compile(index)();
res.setHeader("Content-type","text/html");
res.write(tmp);
res.end();
break;
case '/favicon.ico':
break;
default:
res.setHeader('Content-Type','text/text');
res.write("404");
res.end();
break;
}
});
}).listen(1234);


index.jade

doctype
html
head
meta(charset="utf-8")
title test
body
h1 sample
p sample
posted by ねこまんま at 14:39 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月21日

node.jsのテンプレートエンジン「ejs」を使ってみる

モジュールのインストール

npm install ejs --save-dev


モジュールの読み込み。テンプレートファイルを読み込むためにfsモジュールも読み込む。

var fs = require('fs');
var ejs = require("ejs");


fsモジュールでテンプレートファイル「index.ejs」を読み込む。

var index = fs.readFileSync("./index.ejs",'UTF-8');


index.ejsの 内容は次のような感じ

<%= test %>


テンプレートファイルに対してオブジェクトを渡してあげるとテンプレートに組み込まれる形で表示できる。

var data = ejs.render(index,{
test : "test!!"
});


データ構造が複雑な場合もテンプレート側に<% ..... %>にスクリプトを記述できる。

var list = ["aaa","bbb","ccc"]
var data = ejs.render(index,{
list : list
});


<% for(var i = 0;i<list.length;i++){ %>
<%= list[i] %>
<% } %>
タグ:ejs node.js
posted by ねこまんま at 14:24 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月18日

node.jsでcookieを管理

node.jsでcookieを管理でcookieを管理する方法。

cookieの登録自体はブラウザに以下のheaderを送ってやればできる。

res.setHeader('Set-Cookie',['cookieProp=cookieValue');


取得は以下のようにrequestオブジェクトのheaderから取得できる。

server.on("request",function(req,res){
req.on("end",function(){
console.log(req.headers.cookie);
});
});


簡単に扱いたい場合はcookieモジュールを使うと良い

npm install cookie  --save-dev


そうすれば以下のように簡単にcookieを取得できる

cookie.parse(req.headers.cookie).cookieProp


以下の様なサンプルで確認できる。

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="/form" action="/form" method="post">
<input type="text" name="inputA">
<input type="submit" value="送信">
</form>
</body>
</html>


demo.js

var http = require("http");
var qs = require("querystring");
var fs = require('fs');
var url = require('url');
var cookie = require('cookie');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data;
}).on('end',function(){
var path = url.parse(req.url);
switch(path.pathname){
case '/':
var cookies = cookie.parse(req.headers.cookie);
if(cookies.cookieValue){
res.setHeader('Content-Type','text/text');
res.write(cookies.cookieValue);
res.end();
}else{
fs.readFile('./index.html','UTF-8',function(err,data){
res.setHeader('Content-Type','text/html');
res.write(data);
res.end();
});
}
break;
case '/favicon.ico':
break;
default:
res.setHeader('Content-Type','text/text');
var form = qs.parse(reqBody);
if(form && form.inputA]){
res.setHeader('Set-Cookie',['cookieValue='+form.inputA]);
}
res.write("set cookie");
res.end();
break;
}
});
}).listen(1234);


タグ:Cookie node.js
posted by ねこまんま at 14:24 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月17日

node.jsでPOSTの値を取得する

node.jsでPOSTの値を取得するにはquerystringモジュールを読み込みreqBodyに対してparseメソッドを実行すれば取得できる。

var http = require("http");
var qs = require("querystring");
var fs = require('fs');
var url = require('url');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data;
}).on('end',function(){
var path = url.parse(req.url);
switch(path.pathname){
case '/':
fs.readFile('./index.html','UTF-8',function(err,data){
res.setHeader('Content-Type','text/html');
res.write(data);
res.end();
});
break;
default:
res.setHeader('Content-Type','text/text');
var form = qs.parse(reqBody);
if(form)res.write(form.inputA);
res.end();
break;
}
});
}).listen(1234);


GETの値の取得はnode.jsでGETの値を取得するを参考に。
タグ:node.js
posted by ねこまんま at 14:33 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

node.jsでファイルを読み込み表示する

node.jsではfsモジュールを読み込みreadFileメソッドでファイルの読み込みができるので以下のようにするとindex.htmlを読み込み表示することができる

var http = require("http");
var fs = require('fs');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data;
}).on('end',function(){
var path = url.parse(req.url);
switch(path.pathname){
case '/':
fs.readFile('./index.html','UTF-8',function(err,data){
res.setHeader('Content-Type','text/html');
res.write(data);
res.end();
});
break;
default:
res.setHeader('Content-Type','text/text');
res.write("404");
res.end();
break;
}
});
}).listen(1234);
タグ:readfile node.js
posted by ねこまんま at 14:22 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

node.jsでGETの値を取得する

node.jsでGETの値を取得するにはurlモジュールを利用します。http://localhost:1234?hoge=fugaなどでGET hogeの値を取得するには以下のようにする。

var http = require("http");
var url = require('url');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data
}).on('end',function(){
res.setHeader('Content-Type','text/plane');
var url_parts = url.parse(req.url,true);
res.write(url_parts.query.hoge);
res.end();
});
}).listen(1234);


参考:node.js GET POSTパラメーターを取得する -でじうぃき
タグ:GET node.js
posted by ねこまんま at 12:01 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年04月02日

node.jsのurlモジュール

node.jsではURLの操作にはurlモジュールを利用する。

たとえばURLを取得して表示するには以下のようにする。

var http = require("http");
var url = require("url");

var server = http.createServer();
server.on("request",function(req,res){
var path = url.parse(req.url);
res.setHeader('Content-Type','text/plane');
res.write(path.pathname);
res.end();
}).listen(1234);


url.parse()で取得したオブジェクトはJavaScriptのLocationオブジェクトとおなじものが利用できる
タグ:URL node.js
posted by ねこまんま at 12:29 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年03月21日

node.jsでWebSocket 1

node.jsでWebSocketを使ってみる。

利用するモジュールはWebSocket.IO。npm installを使ってインストール。

npm install websocket.io


server.jsとしてWebSocket用のJSを作成。

var ws = require("websocket.io"),
server = ws.listen(8888);

server.on('connection', function (socket) {
socket.on("message",function(data) {
server.clients.forEach(function(client) {
client.send(data)
});
});
socket.on('close', function () { });
});


コマンドラインから以下のコマンドを入力するとサーバーが起動します。

node server.js


クライントサイドではnew WebSocket(host)でWebSocketオブジェクトを作成し、WebSocket.onmessage()でメッセージ受信用の処理をWebSocket.send()でメッセージ送信用の処理を行う

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
$(function(){
var host = "ws://localhost:8888/",
ws = new WebSocket(host);
//データの受信
ws.onmessage = function(message){
$("ul").append("<li>"+message.data+"</li>")
}
//データの送信
$("#sendBtn").on("click",function(){
message = $("#message").val()
ws.send(message);
});
});
</script>
</head>
<body>
<input type="text" id="message" /><button id="sendBtn">send</button>
<ul>
</ul>
</body>
</html>


参考:Node.jsとWebSocket.IOでチャットアプリを作る | mawatari.jp
タグ:node.js WebSocket
posted by ねこまんま at 22:30 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2014年03月01日

node.jsでファイルを作成

node.jsでファイルを作成するにはfsモジュールをを読み込みwriteFileメソッドを利用する。

var fs = require('fs');
var data = "fuga";
fs.writeFile("./hoge.txt", data , function (err) {
console.log(err);
});


このスクリプトでは「fuga」という内容のhoge.txtというファイルを作成しています。
posted by ねこまんま at 12:35 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする

2013年04月23日

node.jsのsequelizeモジュール

Re:node.jsを使ってjQueryチックにWebサイトをクローリングする方法 その2で使ったsequelizeモジュールについての覚書。

まずはDB接続テーブル定義。

var sequelize = require("sequelize")
var connection = new sequelize('node_test', 'root', 'pass');
var Sites = connection.define('sites', {
url: sequelize.TEXT,
title: sequelize.STRING
});


これでnode_test DBのSitesテーブルのオブジェクトができます。

SELECT文は次のようにfindAll()を利用する

Sites.findAll().success(function(data) {
for (var i = 0; i < data.length; i++){
console.log(data[i].title);
}
});


挿入(Insert)

次のように記述するとデータのインサートができる。。。と思いきやできない。

var site = new Sites({
url: 'http://hoge.net',
title:'hoge.net'
});
site.save()
.success(function() {
console.log('ok');
})
.error(function(error) {
console.log(error);
});


バージョンの問題?次のように変更したらインサートできました。

var site = Sites.build({
url: 'http://hoge.net',
title:'hoge.net'
});
site.save()
.success(function() {
console.log('ok');
})
.error(function(error) {
console.log(error);
});


途中で文法が変わったのかな。。。オフィシャルのドキュメントも微妙だし、ぐぐっても出てこないし色々と辛い
posted by ねこまんま at 19:09 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする