【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
>>815
そういう場合は、適当なプリフィックスをつけるだけで解決するね
obj['@' + word] = なんとか Object.create(null)で作ったオブジェクトには__proto__は無いし自由に値を設定できるこれ豆 Object.create() は、ECMA 5.1, IE9 以上か
こういう機能が無かった、ES3 の頃の話かな chromeのdevtoolsからconsole.dir({})やるとオブジェクトの中身が見れるけど
nodejsの場合はどうやって見るんでしょうか? ○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
eJobgo JIET JISA で検索
優良エージェント・優良サイト
首都圏IT(PE-BANK) プログラマーズ https://github.com/rook2pawn/node-ddos
調べ物をしている最中にこんなの見付けたんだけど
Httpdがリクエスト受け取ってる時点でDDoS対策にならないんじゃないの? >>822
動作の軽いリバースプロキシ立ててそこで対応するほうがよさそう node 8はこの秋LTSになるんだからアグレッシブに最新機能は入れないよ
node 9には入る const o = {
a: {name: 1},
b: {name: 2},
};
↑をObject.create(null)で作りたいんですけど
const z = Object.create(null);
z.a = Object.create(null);
z.a.name = 1;
z.b = Object.create(null);
z.b.name = 2;
console.log(z.a.name, z.b.name);
こう書くしかないんですかね?これだと読みづらくて1番目のようにデータが見やすく作る方法ってないですか? なんでObject.createしばりなの?
リテラル使っちゃだめな理由は? >>829
Object.assign(Object.create(null), { a: {name: 1}, b: {name: 2}, }) ;
>>810
undefinedと比較 >>833
Object.assignはシャローコピーだから>>829と同じじゃない
undefinedとの比較は>>809とは違うしどっちみちundefinedを値として使うと破綻する >>831
え〜〜、Object.prototypeのプロパティに被る可能性があるからっていう理由で
>>829みたいな書き方になっちゃうの。。。用途によるんだろうけど何とも言えない気分 使うプロパティの種類が限られてるなら
気にする必要ないだろ >>837
また新しいライブラリを作ろうって話かよ。
lodashでできるんじゃね? 簡単な関数だよ
$(name1, value1 ...)
で>>829みたいな事をすれば良い そうするとjQueryと勘違いされるから
違う関数名のほうが良さそうだね にわかばっかだなここ
{
__proto__: null,
a:1
}
を使えば良いだけだろ……
その程度も知らないようじゃJSer失格
恥ずかしいよほんとに chromeのdevtoolsのコンソールでconsole.log.を補完すると色々でてくるんですが、
console.logの中にはnameってプロパティがあるんですがこういうのはObject.getOwnPropertyNamesで取れました
console.log(Object.getOwnPropertyNames(console.log));
console.logに含まれるhasOwnPropertyとか__proto__とか__defineGetter__なども関数とか
for (let v in console.log) {
console.log(v);
}
じゃとれませんでした
どうやって取るんでしょうか? もはやnode.jsの話じゃないな
node.js使わずchromeでやってるんだからわざとやってるだろ
まずはjavascript prototypeでググれ
それで分からないことはどこかのjavascriptスレで聞け >>843
chromeのコンソールでconsole.logした方が解析しやすいじゃん バカなの? >>842
getOwnPropertyNamesは名前の通りOwnなプロパティしか取れん
for-inは継承を遡るが、列挙不可にされてるプロパティは取れん
ビルトインプロパティは基本的に列挙不可されているので
結局for-inでも殆どOwnなプロパティしか取れん
それを取るには、__proto__を繋げていって一つ一つにgetOwnすること https://nodejs.org/en/
の、8.7.0 Current をインストールしました。
で、
node.jsを立ち上げ、
.helpは通るのですが、
$ node
や、
$ node -v
は、
SyntaxError: Unexpected identifier
になってしまいます。
どうすればいいでしょうか? コマンドプロンプト・PowerShell で、
node -v
とコマンドを打つと、そのコマンドの実行ファイルを、OS が探す必要がある
つまり、その実行ファイルの場所を、環境変数PATH などで、OSに教える必要がある
環境変数PATHに指定していなくても、
絶対・相対パスで指定すれば、実行できるはず
Windowsのパス(PATH)の読込順 と起動される順番
http://takuya-1st.hatenablog.jp/entry/20110116/1295188903 >>849
レスありがとうございます。
では、どうやればいいのでしょうか?
node.exeは↓にあります。
"C:\Program Files\nodejs\node.exe" >>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 レス数が900を超えています。1000を超えると表示できなくなるよ。