[過去ログ] 【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
711: 2017/07/12(水)04:21 ID:VV5TEq59(3/4) AAS
>>710
ああ、そういう二段構えならokだね
712: 2017/07/12(水)07:31 ID:46U9BX05(1/3) AAS
でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない?
713: 2017/07/12(水)07:33 ID:46U9BX05(2/3) AAS
それにasync awaitつかえば非同期処理はかなり自然に書けないかな?
学習コストは高くなるかもだけど
714: 2017/07/12(水)08:32 ID:Fm5flkvk(1) AAS
async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`)
TypeScriptはコンパイルしたくないって言われた、、、
715: 2017/07/12(水)08:35 ID:VV5TEq59(4/4) AAS
最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う
必要な場面で局所的に使うのがnodeっていうイメージ
716(1): 2017/07/12(水)11:37 ID:WN7PTjbN(1) AAS
phpだってさすがにスレッドぐらい使えるだろう
717: 2017/07/12(水)14:22 ID:sNyzU/qO(1) AAS
非同期DB使えよ
718: 2017/07/12(水)15:54 ID:46U9BX05(3/3) AAS
>>716
むっちゃしんどかった。
goを学習してgorutineで書き直したわ。
719(2): 2017/07/24(月)09:12 ID:/vKjgZpt(1/2) AAS
express-resourceを使ってAPIサーバーを作りたいって考えているのですが
データベースへのアクセス手順を共通化したくなり、下記のようにしました。
class dbaccess {
constructor(db) {
this.db = db
}
index(req, res, next) {
console.log(this) // undefined
this.db.find({}, (e,r)=>res.json(r))
}
省10
720(1): 2017/07/24(月)10:45 ID:1TXRI9Gx(1) AAS
constructor内で
this.index.bind(this)でthisの束縛をすれば解決しませんか?
721: 2017/07/24(月)15:05 ID:BdqEvISL(1) AAS
うむ
722(1): 2017/07/24(月)17:23 ID:/vKjgZpt(2/2) AAS
>>720
お答えいただきありがとうございます。
それを全部のメソッドにやるのも何かしっくりこないので、
下のようにクロージャにしてしまったら何とか期待する動作になりました。
function dbaccess(db) {
let _db = db;
return {
index(req, res) {
}
// 以下略
省3
723: 2017/07/25(火)06:14 ID:5XPEt11J(1/2) AAS
>>722
それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。
724(2): 2017/07/25(火)21:46 ID:1fcXX4D/(1) AAS
>>719
おいおい、変なことしないほうが良いぞ
もうちょっと調べるべきだろ?
他のプロジェクトでそんな書き方してるか?
昔やったきりで忘れたし今のやり方は変わってるかもしれないから
適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ?
725(1): 2017/07/25(火)22:27 ID:5XPEt11J(2/2) AAS
>>724
外部リンク:qiita.com
によると
req,res,nextの3引数を取る関数を作ればいいみたいね。
偶然にもクロージャーを使うというのは正解だけど
nextを省略してるってことは他のミドルウエアを後から追加したら
動かなくなる
こういうの見てるとtypescript使うべきって思う。
型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。
726: 2017/07/25(火)22:30 ID:FGFvX1HY(1) AAS
>>719
GCされてね?
727: 2017/07/26(水)15:41 ID:2Xw6+C7K(1/2) AAS
722です
一応、最小限っぽいコードを書いてみました。
外部リンク[html]:www.dotup.org
users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。
>>724
本家のサンプルも利用者のblog記事なども一通り見たのですが、
見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて
影響なさそうなクロージャにしてしまいました
>>725
ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます
省1
728(2): 2017/07/26(水)16:04 ID:2Xw6+C7K(2/2) AAS
ちなみに、なんでクラスで書こうと思ったのかと言えば
クロージャとクラスのインスタンスが内部的には等価だと思っていたからです
729: 2017/07/26(水)16:54 ID:p1ZvRLSy(1/2) AAS
codepenとか使うかgithubに上げるかして欲しいわ。
正直zipでってなんかイャ
730: 2017/07/26(水)16:56 ID:p1ZvRLSy(2/2) AAS
>>728
将来の自分のためにも流儀は合わせておくべき。
コード量の削減に影響するとも思えない。
上下前次1-新書関写板覧索設栞歴
あと 272 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s