X



【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2016/04/11(月) 16:28:34.52ID:ORuOCkHy
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系
http://iojs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

io.js の経緯
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&;lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
0317デフォルトの名無しさん
垢版 |
2017/02/08(水) 18:58:19.46ID:uiFBRwjo
ソースからビルド、そんなに少数かな。
俺の知ってる環境も基本はそうだった。
0319デフォルトの名無しさん
垢版 |
2017/02/08(水) 23:10:55.63ID:wsrFvMlT
>>313
ガラパゴスの住人さん乙

>>318
DBサーバーなら違うって話はあり得るがここはnode.jsスレだからな
nginxと同居することも多いんだからボリュームゾーンからそう外れないだろ
0320デフォルトの名無しさん
垢版 |
2017/02/09(木) 04:37:18.58ID:KfjJ3OGM
>>304の話もそうだけど、みんなforever大好き人間なの?

ってのも今日のTechCrunchの記事にあったKeymetricsってとこが出してるpm2ってプロセスマネージャがすんげー使いやすそうなんだけどと思ってさ。

ttp://jp.techcrunch.com/2017/02/08/20170207keymetrics-is-a-nodejs-monitoring-tool-for-your-server-infrastructure/
0322デフォルトの名無しさん
垢版 |
2017/02/09(木) 11:35:11.33ID:xprSmyqC
>>319
普通にcentにnginx入れてるが
つうかどのディストリ使おうがインストール作業なんてたいしたもんじゃない
面倒なのは設定だ
ubuntuなら特別設定が楽かといったらNOだろ
0323デフォルトの名無しさん
垢版 |
2017/02/09(木) 16:32:01.00ID:KfjJ3OGM
>>321
スクリプト書く労力も大して変わらないっってのもわかるんだけど、pm2だとプロセスのリスタートとかも簡単でさ。Node.jsにAPIをいくつもぶら下げるような環境だとこれ入れた方が楽そうだなって思って。
0324デフォルトの名無しさん
垢版 |
2017/02/13(月) 15:30:13.15ID:+69sTJr+
計算方式が複雑で専門知識も必要な超面倒なことで止まってて、npm無いかなと思ったらあったんですが、マイナーで開発も止まってるっぽいです。
installしてみたら、moduleの中にあるc++のところで何やらwarningがいろいろ吐かれてたのですが一応は動く… cは全然やったことないので何でダメなのかはぼんやり。
こんなとき。これをそのまま使うのと、改変出来るようにcも勉強するのと、専門知識と計算を自力で勉強して頑張るの、どれがベストですかね。
0327デフォルトの名無しさん
垢版 |
2017/02/14(火) 11:43:04.67ID:o7NkWciL
警告の内容による

割とどうでも良い内容の場合オプションで黙らせてるオープンソースソフトウェアも多々ある

chromiumでビルドツールが吐いたファイルのコンパイルオプションを見ると
かなりの数の警告がデフォルトで無効化されてるはず
0328デフォルトの名無しさん
垢版 |
2017/02/14(火) 15:11:01.24ID:0FAFNiBf
初心者ですまんだけど、functionの中で使えるモジュールとそうじゃないのあるんだけどそれってどうしてなの?
エラーも出ずにただただ動かないやつあるんだよね。関数の外だと動かせるのに。
0330デフォルトの名無しさん
垢版 |
2017/02/14(火) 21:50:07.73ID:MfKEp5BT
ただただその関数が呼ばれてないだけというオチに1票
0331デフォルトの名無しさん
垢版 |
2017/02/14(火) 22:21:25.87ID:W41n3HIS
呼んでないならエラー出るんじゃね?
関数の外だと動くとしたらexpressとかかな。router.getとかpostの中で走らないとかなら前にあった気もしなくない。どうしたか忘れたけどw
0332デフォルトの名無しさん
垢版 |
2017/02/15(水) 00:10:45.91ID:ZQplfFJ2
Rubyを使えば?
Chefのレシピは、どこにでもある

Chef → Vagrant → VirtualBox

CentOSは8〜10年と、サポート期間が長い。
Ubuntu Serverは5年だろ
0334デフォルトの名無しさん
垢版 |
2017/02/15(水) 03:20:36.44ID:ZQplfFJ2
%w{php mysql nginx}.each do |name|
package name do
action :install
end
end

%w{php-fpm mysql nginx}.each do |name|
service name do
action :start
end
end

Chefで、複数のパッケージをまとめて、インストール・起動できる
0336デフォルトの名無しさん
垢版 |
2017/02/15(水) 05:14:07.85ID:ZQplfFJ2
Rubyでは中間言語にコンパイルする時に、エラーが分かるから、
途中まで実行されないから、中途半端な状態にならない

シェルスクリプトではエラー処理など、複雑なプログラミングはできない

Chefでは、action :install など、共通のコードで、
ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える

設定ファイルに書き込むとか、cron での定期実行とか、
Vagrant を削除すればすべて消えるから、何回でもテストできるし、
Test Kitchen というテストツールもある

こんな全工程をとても、シェルスクリプトでは書けない
0339デフォルトの名無しさん
垢版 |
2017/02/15(水) 21:49:05.06ID:EMySciej
>>336
> Rubyでは中間言語にコンパイルする時に、エラーが分かるから、
> 途中まで実行されないから、中途半端な状態にならない

まあ、誰に目にも間違いだと明らかにわかっていることだが、
ネタ的に面白いから言ってみて。

「他の言語だとこういう場合にこうなって、
Rubyだとそうならない」という形で例を言ってみて
0340デフォルトの名無しさん
垢版 |
2017/02/15(水) 22:02:17.92ID:MGTJrHMY
面白くないし言わせなくていいよ
元々スレ違いの話だし続けても荒らしにしかならん
0341デフォルトの名無しさん
垢版 |
2017/02/15(水) 22:03:49.19ID:EMySciej
逃げ出すなら今のうちだぞ?w


Rubyだとコンパイルされてもエラーがわからず
エラーで途中で中断されるまで実行されてしまって
中途半端な状態になる例

↓↓↓↓

f = File.new("out.txt", "w")
f.write("test")
f.close()
aaa()
File.delete("out.txt")


aaa()で途中で中断される。out.txtというファイルは消えずに残る
0343デフォルトの名無しさん
垢版 |
2017/02/16(木) 03:04:55.36ID:1M26REHO
Chefの冪等性を言語の機能だと思ってんのかな
あれは苦労してそうなるように実装してるんだよ
スッキリくん
0344デフォルトの名無しさん
垢版 |
2017/02/16(木) 11:50:45.61ID:1CyXSjc0
おまいらがいろいろめんどくさいこと言うから事の発端の初心者の子が出てこれなくなってるじゃないかw
0346デフォルトの名無しさん
垢版 |
2017/02/16(木) 14:09:27.37ID:1CyXSjc0
ちょっと伸びててしかもなんで別言語の話になってるの?と思って追ってみただけだけど。
いつもということは常駐してんの?ひまだねえ
0347デフォルトの名無しさん
垢版 |
2017/02/16(木) 14:22:02.95ID:1VBkG9E6
いや
このスレに限ったことじゃなくて
2ちゃん全般だから

ひまなのは認める
0348デフォルトの名無しさん
垢版 |
2017/02/16(木) 14:42:37.07ID:squjHSRZ
>>336
そろそろJenkinsおじさんに次ぐChefおじさんと呼ばれる人たちがでてくるころかな。
今始めるなら、Ansibleがおすすめだよ。
0349デフォルトの名無しさん
垢版 |
2017/02/16(木) 22:07:51.85ID:jc3dpiuS
Chef(など)の冪等性の機能って本当に同じ状態にするわけじゃないからな

まず書いてないことの状態は、定まらない。例えばこういうファイルを作れや
ファイルを削除する。なら定義できるが、そこに書いたこと以外の
余計なファイルが有ったり足りなかったりしてた場合は違う状態になる。

それからパッケージとかライブラリとか、インターネット上から落としてくるようなやつは
同じになるとは限らない。バージョンを指定したら同じになるだろうが、今度は
そのバージョンが削除されたらエラーになってしまう

本当に同じ状態にするのであれば、最初に作ったものをイメージ化するしかない。
だがイメージ化したものを使って変更を入れないのならば冪等性なんかは不要になる。
これがイミュータブルインフラストラクチャーという考え方

必要なのは「最初に作るもの」を手順化したものだけ。
そこにChefが必要か?と言われれば当然必要ない。

なぜなら、Chef等が登場する以前、みんな端末から手動で構築していたろ?
端末っていうのは要するにbashだったりzshだったり。
つまりbashシェルスクリプトで全部できることでしかない。

インタラクティブな処理とファイル編集はbashシェルスクリプトでやりにくいように思うかもしれないけど
インタラクティブな処理は、シェルスクリプトでも実行する方法が用意されているものだし
ファイル編集は発想を変えて、ファイルそのものをコピーすればいい

そうすれば消して特定の状態から環境を作る処理なんざシェルスクリプトでなんの苦労もなくできる。
消さずに何度も設定を送り込んむような(クラウド的ではない)使い方をするのなら
冪等性があると便利だから使う意味があるが、それでもAnsibleで十分だし、Ansibleの方が簡単
0350デフォルトの名無しさん
垢版 |
2017/02/16(木) 22:12:01.74ID:jc3dpiuS
>>336
> Chefでは、action :install など、共通のコードで、
> ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える

一見便利そうに思うかもしれないけど、汎用的なChefレシピを作ってる人(誰かいんの?)以外は
CentOSとUbuntuを変更したいなんてことはまずない。

そもそもCentOSとUbuntuではパッケージ名が違う

だから自動的に切り替えることは完全にはできない。
それからバージョン番号とかどうする?完全に一致するわけじゃない。

結局CentOSはこの名前のパッケージで、Ubuntuだとこの名前のパッケージというように
切り替えるファイルが別に必要

誰かが用意してくれてるんだろうが、マイナーなパッケージまでそれをやってくれるのか?
頑張った所でCentOSとUbuntuで違うが生まれるというのに、誰が喜ぶんだという話
0351デフォルトの名無しさん
垢版 |
2017/02/16(木) 23:13:35.09ID:jc3dpiuS
https://www.ogis-ri.co.jp/otc/hiroba/technical/vagrant-chef/chap3.html

> どうやら Ubuntu と CentOS は git-daemon のパッケージ名が異なるため、
> 同じパッケージ名で両方の OS に対してパッケージをインストールできないようです。
> 以下のようにレシピ中でプラットフォームごとに適切なパッケージ名を使うように変更しましょう。
>
> package "git-daemon" do
> case node[:platform]
> when "centos"
> package_name "git-daemon"
> when "ubuntu"
> package_name "git-daemon-run"
> end
> action :install
> end

あははw あほくさ
本末転倒とはまさにこの事
0352デフォルトの名無しさん
垢版 |
2017/02/17(金) 00:09:45.16ID:fTK4d/WW
cookbookは各社が公開している

Chef社のopscode、Railsを作っている Basecamp社、
Berkshelfを作っている Riot Games社、
Pivotal Trackerを作っている Pivotal Sprout社、
aws, engine yard

この本を参照。
Chef実践入門 - コードによるインフラ構成の自動化、2014
0353デフォルトの名無しさん
垢版 |
2017/02/17(金) 01:33:30.98ID:EzDq9nSn
> cookbookは各社が公開している

そうやって誰かが用意してくれなければ
使いづらいようなものを他人(各社以外=つまり俺ら)が
メンテ何するなんて苦行でしかない。

シェルスクリプトでみんなやれているのに
それをわざわざ別の形式で書く必要なんてないんだわ。

みんなが手動でパッケージ入れたりしているものを
単に記述しただけなんだぞ。
シェルスクリプトなら探す必要もないし、
難しさのかけらもない

2014年という終わコンになったChef soloを
使った手順しか書かれてない本も読まなくていい
0355デフォルトの名無しさん
垢版 |
2017/02/21(火) 19:28:09.02ID:hNSzp0Df
ansibleから漂う超光速通信感が格好いいからアンシブル好き何やってるのかは知らんけど
0356デフォルトの名無しさん
垢版 |
2017/02/22(水) 11:38:24.75ID:nFPUHBlJ
>>352
俺がchefをやめた理由:
・アーキテクチャがころころ変わる(最大の理由)
 → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も)
・リモートにインストールが必要
・他人が作ったcookbookでなにやってるのかよくわからん
・さらに、そのカスタマイズポイントを調べるのが面倒
・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない

まあ、Ansibleにもあてはまる項目あるけどね。
0357デフォルトの名無しさん
垢版 |
2017/02/22(水) 11:38:55.75ID:nFPUHBlJ
>>352
俺がchefをやめた理由:
・アーキテクチャがころころ変わる(最大の理由)
 → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も)
・リモートにインストールが必要
・他人が作ったcookbookでなにやってるのかよくわからん
・さらに、そのカスタマイズポイントを調べるのが面倒
・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない

まあ、Ansibleにもあてはまる項目あるけどね。
0358デフォルトの名無しさん
垢版 |
2017/02/22(水) 12:09:52.48ID:yaW/NUco
アーキテクチャがころころ変わるのは
オンプレ連中に楽させるかよ金払えって意図がある
0359デフォルトの名無しさん
垢版 |
2017/02/22(水) 20:56:44.68ID:TiP/fttU
>>357
そのAnsibleにもあてはまる項目だけど、
各アプリの設定ファイルを、わざわざAnsibleのyml形式で
書き直すっていうのがアホらしいと思う

あと、

Ansible公式でモジュールが用意されているとあるサーバーアプリがあるのだけど、
そのサーバーアプリの最新版がリリースされたら公式モジュールが動かなくなった

このように間に別の仕組みがはいって、その別の仕組はアプリごとに
用意しないといけないものというのは、公式で対応すべきじゃないと思う。
利用者が自分で書くか、アプリ自信に配布してもらうか

ちなみになAnsible Galaxy見てみたら、そのアプリに対応するモジュールが
50個以上あったわw 検証してられるか=それらはゴミ
0360デフォルトの名無しさん
垢版 |
2017/02/23(木) 10:44:15.73ID:5OVH7aZj
>>359
> 各アプリの設定ファイルを、わざわざAnsibleのyml形式で
> 書き直すっていうのがアホらしいと思う
うん、アホらしいね
だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね

ゴミに関しては、chefのcookbookの方が多いんじゃないかな
さらに同じ目的なのに多数類似品が見つかるし、動かなくなってるのもあるし
0361デフォルトの名無しさん
垢版 |
2017/02/23(木) 10:50:09.51ID:5OVH7aZj
ただ、
> 各アプリの設定ファイルを、わざわざAnsibleのyml形式で
> 書き直すっていうのがアホらしいと思う
は書くのは大変だけど、多大なメリットがある

それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが
結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし
(あるいはちょっとした変更)でいけたりする
iptablesからfirewalldの変更とかね

設定アイル事前準備→内容書き換え→配布だと、それに対応できない場合がある
0362デフォルトの名無しさん
垢版 |
2017/02/23(木) 22:10:27.88ID:Ka1UMSVA
> それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが
> 結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし
> (あるいはちょっとした変更)でいけたりする

それは普通にアプリ標準の設定形式であっても同じ

もし、付属する設定ファイルが結構変わっていたりしたら
それにAnsibleが対応するまで、使えない。

実際、エラーが出て困ってる。
0363デフォルトの名無しさん
垢版 |
2017/02/23(木) 22:11:49.00ID:Ka1UMSVA
>>360
> 書き直すっていうのがアホらしいと思う
うん、アホらしいね

だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね

そして、アホらしいから設定ファイルに変数を埋め込む方法を使えば
設定ファイルが大きく変わったとき困るよね?
0364デフォルトの名無しさん
垢版 |
2017/02/23(木) 22:17:25.43ID:Ka1UMSVA
>>361
> iptablesからfirewalldの変更とかね

iptablesはこっちを使いましょう
https://docs.ansible.com/ansible/iptables_module.html

firewalldはこっちを使いましょう
http://docs.ansible.com/ansible/firewalld_module.html

見ての通り使える機能が違うからオプションも違います。


iptablesを勉強した後、Ansibleのドキュメントを見て、何が何に対応するか調べましょう
そして
firewalldを勉強した後、Ansibleのドキュメントを見て、何が何に対応するか調べましょう
0368デフォルトの名無しさん
垢版 |
2017/02/24(金) 10:50:57.89ID:L3urbmMZ
>>362
> もし、付属する設定ファイルが結構変わっていたりしたら
> それにAnsibleが対応するまで、使えない。
そんなことないよ。
設定ファイルが結構変わってても、設定する項目は変わらなかったりする。
locale関連設定とか、timezone設定とか。

>>363
> 設定ファイルが大きく変わったとき困るよね?
そうだよ。だからyamlで設定するメリットを書いた。

>>364
> 見ての通り使える機能が違うからオプションも違います。
だから、yamlで設定を書いておけば、少しの変更でいけるって書いたじゃん。
それに、この例で言えば、iptablesでもfirewalldでもいける設定を誰かが作ってるかもしれないし。
俺はそれ探すより自分で書き換えた方が速かったから探してないけど。

誰かが作ったカスタマイズ度が高い設定を使うだけなら、chefもansibleも似たようなもんかもね。
>>357のデメリットが大部分あてはまる。
0369デフォルトの名無しさん
垢版 |
2017/02/25(土) 00:07:14.99ID:7KoBIFTE
> だから、yamlで設定を書いておけば、少しの変更でいけるって書いたじゃん。

それは無理。公式がコードを修正しないといけない
0373デフォルトの名無しさん
垢版 |
2017/02/26(日) 18:37:39.09ID:TIfPFmII
実際に手を動かしてるやつがいて安心したんだけどな
机上の空論語るよりよっぽどためになる
と言いつつ、dockerの俺は高みの見物
0374デフォルトの名無しさん
垢版 |
2017/03/17(金) 16:32:59.98ID:AoUhXhvS
ES6モジュールで書かれた依存モジュールがある状態だとbabel-node使えないな
node_modulesのignore外すとbabel自身を変換しようとするのかエラー出て通らない
globalにbabel-cli入れないとダメか
0375デフォルトの名無しさん
垢版 |
2017/03/22(水) 22:15:57.31ID:ZzjrTTVd
electronで作ってるんだけどC#とかのWindow Form?と違ってcssデザインの才能ないと見た目が悪くなるなコレ
0377デフォルトの名無しさん
垢版 |
2017/03/23(木) 23:51:44.74ID:kxaT0+ZA
>>376
これ便利ですね! ありがとうございますm(__)m
0378デフォルトの名無しさん
垢版 |
2017/03/27(月) 02:17:39.25ID:lADNPtGP
npmが壊れたみたいなのですが、これはどうすればよろしいのでしょうか。

経緯:
1. 本日初めてインストール。(v4.8.1-x86、なおvistaなのでv6.10.1は無理だった)
2. gulp等インストールが順調に完了
3. uglifyしようとするも、ES2015のためエラー
4. uglify#harmonyをインストールしようとするも、httpsでエラー
5. ローカルにクローンしてnpmしても、途中でhttpsでエラー
6. npm install npm@latest -g しようとするが、ディレクトリを間違えていたため途中でCtrl-Cで止める
7. これ以降npmが動かなくなる
8. 何度もnodeをアンインストール/再インストールしてみたが、npmが動かない。
9. エラーメッセージは以下。(ディレクトリ名は消してます)

>npm version npm
module.js:327
throw err;
^

Error: Cannot find module 'semver'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (npm\node_modules\npm\lib\utils\unsupported.js:2:14)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)

アンインストールしても直らないので、レジストリかどこかに書いてそうなのですが、
ご存じないでしょうか。
0379デフォルトの名無しさん
垢版 |
2017/03/27(月) 09:36:51.01ID:p7pVTGV7
vistaの場合はドッチなんだろう

ここも削除してみたら

Windows XP - %USERPROFILE%¥Application Data¥npm¥node_modules
Windows 7 - %AppData%¥npm¥node_modules
0382デフォルトの名無しさん
垢版 |
2017/03/27(月) 10:58:39.97ID:lADNPtGP
>>379
ありがとうございます。復活しました。
ディレクトリは%USERPROFILE%\AppData\Roaming\npm\node_modulesでした。
0383デフォルトの名無しさん
垢版 |
2017/03/27(月) 19:07:50.12ID:lADNPtGP
>>380
試行錯誤の末、何とか動くようになりました。
結論としては、Gitも最新版にする必要があったようです。
> https://git-scm.com/download/win
nodeにもgitが入っていてそれを使っているものだと勘違いしてました。

ありがとうございました。
0385デフォルトの名無しさん
垢版 |
2017/03/28(火) 17:23:59.52ID:3EkUFmFA
next.js使えるって思ったら
クライアントサイドのコードとサーバサイドのコードの連携方法が不明。
0386デフォルトの名無しさん
垢版 |
2017/03/28(火) 18:15:57.57ID:kpaN19Jn
連携意味ない
0387デフォルトの名無しさん
垢版 |
2017/03/29(水) 07:57:57.41ID:KsdrIF6a
expressでlistenしているサーバーの443ポートに、socket.ioをねじ込むことはできますか?
httpsしか許可していないLAN環境で使いたいためです。
0390デフォルトの名無しさん
垢版 |
2017/03/29(水) 09:06:05.10ID:KsdrIF6a
>>389
ありがとうございます。
別IPか別ホストに分けて起動するようにします。
0391デフォルトの名無しさん
垢版 |
2017/03/29(水) 09:18:00.82ID:KsdrIF6a
レス間違えました。388ありがとうございます。

>>389
そうなんですか? どうやるんでしょう?
何分、始めたばかりで基本の知識に乏しいものでして…
0393デフォルトの名無しさん
垢版 |
2017/03/29(水) 12:15:17.04ID:KsdrIF6a
>>392
ありがとうございます!
調べてやってみます。
0394デフォルトの名無しさん
垢版 |
2017/03/29(水) 13:18:48.28ID:KsdrIF6a
こんな感じであっさりとできました。すげー!
keysはSSLの証明書ファイルとかです。

ex = require('express');
app = ex();
... some js ...
sv = https.createServer(keys, app).listen(port, bind);
io = require('socket.io').listen(sv);

ありがとうございました!!
0395デフォルトの名無しさん
垢版 |
2017/04/01(土) 17:53:04.82ID:y/KMs3zV
Node.js@Windowsです。
spawnを使ってexpectのようなことってできないんでしょうか?
例えば以下のように、stdoutに「Y/N」が出力されたら「y」と答えるようなことがしたいのですが…。

const spawn= require('child_process').spawn;
const de = spawn('del', [ '/p', 'foo' ], { shell: true });
de.stdout.on('data', (data) => {
  if (data.toString().indexOf('Y/N') !== -1)
    de.stdin.write('y'); // ???
});
0396デフォルトの名無しさん
垢版 |
2017/04/02(日) 01:44:35.81ID:FpSI1UN2
next.jsってjsコードをクライアントでもサーバでも動くように書かないとだめなの?
例えば以下のような条件を入れてサーバとクライアントで処理を分岐することはできるけど
typeof window === `undefined`

そもそもimportについてはどうすればいいの?

fsがないって怒られんるだけどサードパーティのライブラリが依存してたら使わなくてもエラーになっちゃうし。
0397デフォルトの名無しさん
垢版 |
2017/04/02(日) 17:23:56.57ID:FpSI1UN2
react naitive躓きました
react-naitive init hogehoge

ってやってプロジェクト作ろうとするとdoneと表示されてもプロンプトが戻ってこない。
nodejsはanyenvを使って最新を入れてます。

ctrc+cで無理やり戻すと当然プロジェクトはできていないので何もできない。
0400デフォルトの名無しさん
垢版 |
2017/04/02(日) 22:53:02.06ID:0PLfOFLS
まだ勉強し始めなんだけどコールバック地獄を抜けたらPromiseラップ地獄が始まってる気がするゾ
0403デフォルトの名無しさん
垢版 |
2017/04/03(月) 00:08:15.13ID:pMsTDita
RxのAsyncSubjectってPromiseと比較してどんなメリットがあるんだ?
async/awaitで使えないから不便と思う
0404デフォルトの名無しさん
垢版 |
2017/04/03(月) 00:37:17.85ID:UPqV6+1g
callback地獄なんか近づかずにpromiseとasync await始めたほうがいい。
promise抑えてからじゃないとasync await使えないから、promiseは必須な
0405デフォルトの名無しさん
垢版 |
2017/04/03(月) 00:44:19.88ID:UPqV6+1g
rxはreact nativeあたりと組み合わせるとどうなんだろうね?
coldとhotって概念があったり意外とつまずきやすい。全てがstreamという概念は素敵そうだけどreactとうまく組み合わせられるんか?
0408デフォルトの名無しさん
垢版 |
2017/04/03(月) 01:10:13.39ID:MrxLrKt6
fs.readdir(source, function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
})
}.bind(this))
}
})
})
}
})
0410デフォルトの名無しさん
垢版 |
2017/04/03(月) 03:53:47.87ID:CTM8h4Rc
>>408
fs.readdir(source, func1)

var func1 = function(err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(func2)
}
}
var func2 = function(filename, fileIndex) {
console.log(filename)
gm(source + filename).size(func4)
}
var func3 = function(width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
}
var func4 = function(err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(func3)
}.bind(this))
}
}
0413デフォルトの名無しさん
垢版 |
2017/04/03(月) 21:16:06.10ID:XYXk6jFX
>>411
RxJSのメリットは非同期の扱いを楽にしてくれること

RxJSとreduxを組み合わせるのは
一番よく使われてるフレームワークにのっかることで
Redux向けのツール類やノウハウなんかでそのメリットを享受するため

>>409の1つ目のリンクはRxJSだけでreduxと同じようなことをやってる例
2つ目は組み合わせて使う例
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況