【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>851
インストールした、
node.jsのコマンドプロンプトみたいな所に、
..helpを打てば、
↓を返してくれる。
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
しかし、
$ node -vを打っても、
エラーになってまう。
これは不思議なことだと思わないかね? なんでそんなレベルでnode.jsインストールしようと思ったんだろ >>854
https://www.webprofessional.jp/beginners-guide-node-package-manager/
このページの黒い部分でいうと、
> console.log('Node is running');
や
> .help
これは、
実行出来るのです。
この状態でバージョン確認をするにはどうすればいいのでしょうか? >>850
C:\Program Files\nodejs\node.exe >>857
お、ありがとうございます。 通りました。
じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。
$ which node
$ node --version >>858
849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す
パスの通し方とかでググって
コマンドプロンプト使う時の基本だから windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな
$は入力するものじゃないしwitchコマンドはwindowsにはない 例えば、コマンドプロンプトで、
where notepad
と打てば、メモ帳の実行ファイルの場所が、表示される
where node
と打てば? 皆さん、レスありがとうございます。感謝します。
ちなみに、
コマンドプロンプトで、
C:\Windows\system32>where notepad
と打つと、
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
と表示されます。
さらに、
C:\Windows\system32>where node
と打つと、
C:\Program Files\nodejs\node.exe
と表示されます。
さらに、
https://qiita.com/taiponrock/items/9001ae194571feb63a5e
ここを参考にして、コマンドプロンプトに、
C:\Windows\system32>node --version
と、打つと
v8.7.0
と表示されます。
ってことは、「nodejsのパスは通ってる」ってことはないですか?
さらに、コマンドプロンプトで、
C:\Windows\system32>npm --version
と、打つと、コマンドプロンプトがどこかに行って戻って来ません。 npm の仕組みについても、検索して調べて!
思い付きで、色んなコマンドを打っても、動かない
C:\Windows\system32>node --version
C:\Windows\system32>
そもそも、ここは、Windows のシステム領域だろ。
こんな場所へは行かないし、ここからコマンドを打つことは、絶対にない
自分のホームディレクトリ以下に、プロジェクトフォルダを作って、
そこからコマンドを実行する
プロジェクトフォルダ>node --version
これで、コマンドが探せないのなら、
>>849
のサイトを見て、勉強する
OS の仕組みについて、何年も勉強していなければ、
環境構築・システム運用はできない つか、わかった。
スタートメニューに色々出来るけど、
nodejs
と、
Node.js command prompt
があって、
Node.js command prompt
を立ち上げるべきを、
nodejs
を立ち上げてたのだと思う。 http://gihyo.jp/dev/serial/01/nodejs/0001
つかこれの、真ん中ぐらいの、
>を実行すると,コンソールに「foo」と出るのが確認できます。
これが確認出来ました。
ありがとうございました。 しかし、nodejsも、Node.js command prompt も、
どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね? node.jsを使ってjQueryチックにWebサイトをクローリングする方法
https://liginc.co.jp/programmer/archives/4848
これが半分ぐらい出来たんですけど、
これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね? プログラミングの学習が目的ではないみたいだし
潔く諦めてGUIのスクレイピングツールを使え
自分で学ぼうとしないやつを
いつまでも相手にするほどみんなヒマじゃないから MongoDB, Redis など、NoSQL系DB で良い windows10をFCUしたら
node-notifierと言うライブラリが機能しなくなってしまいました。
呼び出すとエラーも出さずに消えてしまいます。
どこを確認すべきでしょうか? 複数人体勢のexpressのほうが安心
koaは作者一人だから不安だから使わない koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品 koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。
いいで〜 koa2+react。 全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。
10年後も、その時の最新のnodeで使えるんなほんまに。 node.js難しいっていうイメージだったけど、
JavaScriptがウンコだったってことみたい
なんでこんなに散らかってしまったんだ
せめて書き方を統一しろよ なんでって20年以上も歴史のある言語で産まれたときとは用途も規模も全然違ってるからな JavaScriptは言語仕様が使いにくいとは思う
小規模なら使いやすいかというと全然そんなことない 言語仕様に難しいところはない。
難しいと思う所言ってみな? プロトタイプベースなところ
使いやすいと思ったことがない >>896-897
仕様が難しいというのと馬鹿の扱いが難しいのは別の話だな ES2015に従えばプロトタイプってことを意識することはないかな。
既存のクラスにメソッド追加したいときとかなら意識するけども。 >>902
prototypeを使って簡単なことをするのと
prototypeを使って複雑なことをするのでは
当たり前だけど難易度が違うのさ
既存のクラスにメソッドを追加するのは、
prototypeの簡単な使い方に含まれる
意味はわからなくてもいいから、こういう書き方をすればOK
程度の説明だけでもクラスにメソッドを追加することはできる クラスだけじゃなく手続き型っぽくも書いたり
はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない?
凄く冗長に厳かに書いたかと思えばハッキ―なテクニックも使ったりもするしね
世の中には「良い書き方は1つ」を目指してる言語もあるけどJSはその対極だからね
標準ライブラリが少ないという点もそう
俺はそういう点こそが好きだけどね OOPが常に最適解ではないというのは衆知の事実だしな。
俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。 node-redを使ってるんですが
フローって作成するとメモリに常駐するんですか?
作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね? パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね
現状じゃ括弧のネスト増えるからとてもじゃないけど書けない 関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし
そしたらパターンマッチも不可欠だし
関数型への道は険しい
Elm使え ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが
|>await|>など提案によりStage1の中ではHotになりつつある
あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負
そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要
頑張れ >>907
パイプだろうがドットだろうが大差ないだろw
どうせ一行が長くなったら改行するんだから
つまり
foooooooooo()
| baraaaaaaaaaaaa()
| bazzzzzzzzzzzzzzz()
でも
foooooooooo()
.baraaaaaaaaaaaa()
.bazzzzzzzzzzzzzzz()
でも同じだろと
foo() | bar() | baz() でも
foo().bar().baz() でも同じだろと >>910
いや、メソッドじゃなくて関数
bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo()))
と
foooooooooo()
|> baraaaaaaaaaaaa()
|> bazzzzzzzzzzzzzzz()
じゃ後者がいいやん?
メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね >>910
>>911
パイプの方が可読性高いだけでもいいわ
メソッドチェーンは読みにくくなるから嫌い https://www.npmjs.com/package/babel-plugin-pipe-operator
babel-plugin-pipe-operator
Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior
これ使えば今すぐ使えるのかな? A | B | C
たぶん、パイプだと並行処理する
1. Aが最初の1KBを処理する
2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理
3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理 これの第2引数って{anyway:true}みたいなのを渡せばいいんですか?
https://i.imgur.com/0gmvmSq.png socket.io 2.0.4で指定したルーム内の全てのソケットもしくは
ソケットIDを取るにはどうしたらいいですか?
socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、
同じようなことを2.0.4でしたいです。 自己解決しました。
socket.ioのgithubに行ったら詳しいドキュメントがありました。 JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。
ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。
CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。 一年くらい前にブラウザのSW上に実装した記事をどっかで見たな console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。
一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。
Node.jsは後者みたいだけど。 あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから
とりあえず前者にしておけばいいんだな。 クライアントサイドjavascriptのスレってどこにあるんですか?
WebProg板にあるのかと思いきやあっちもサーバサイドだし child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう
スレッドのjoin()のように待ち合わせる機能はないのかな。 workerってWebWorkerのこと?
それならSharedArrayBufferとAtomics APIでできるよ
ただCPU脆弱性問題で今は無効にされてる サーバーサイドでそれ無効にする必要ある?
Webブラウザは様々なサイトのコードを実行するから
対策が必要だろうが
サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん >>929
いつの間にサーバーOS=シングルユーザーOSになったんだよw
OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ 自鯖レン鯖ならともかくコンテナやVPSでメモリ共有する環境もあるしな 他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね? http://blog.trendmicro.co.jp/archives/16735 読んだだけの
大雑把な理解だが、
カーネルのメモリを覗けるのがメルトダウン
同じコードを共有した他のプロセスのメモリを覗けるのがスペクター
だと思ってる
メルトダウンはカーネルのメモリを覗けるものだから
カーネルが覗かれないように対策できる
スペクターはアプリが覗かれないように対策する必要があるが
その必要があるのは、例えばブラウザのような同じブラウザ上で
別々の人が作った任意のコードを実行するようなものだから
攻撃の前提を満たすのが難しい >>933
この記事はいいね。
> その必要があるのは、例えばブラウザのような同じブラウザ上で
> 別々の人が作った任意のコードを実行するようなものだから
この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、
Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。
同じアプリである必要はないはずよ。 Spectreの2つの亜種のうち
1つは同じプロセスの内容だけを覗けて
もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど? Spectreは2つ組み合わせて使わないと意味がない 一度でもasync/awaitを使ってしまうと、もう元には戻れない
楽すぎるぅぅぅぅぅ 単発非同期にはasync-awaitで十分便利だけど
イベントのようなものを扱うのはまだまだ難しい
まず値が複数あるということ
一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は
結局done:trueを見ないといけないから使えない
また、イベントって標準on〜も結構な工夫がされてるけど、
イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある
この辺り最近ずっと個人的に研究してるが容易ではない 最近node.jsを勉強しています。
socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら
その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか? スマホでアクセスポイントが変わったりした場合、一回切れますよね? 同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね TCPかUDPかとかでも違うんだろうけど
socket.ioがどっちかは忘れた socket.ioってクッキーみたいので、セッションID維持してて
切れても安心みたいな感じじゃないんですか? node.jsって人気ないな〜
解説ブログは古いし、間違ってるし、
こんなんで作ったらバグだらけやん レス数が950を超えています。1000を超えると書き込みができなくなります。