【node.js】サーバサイドjavascript 5【Nashorn】
>>67
back trace確認した?
バグか環境の問題だろうから新しい環境とか
違うバージョンのnodeやosで試して切り分けするといいかもね
あとコアダンプ見るのはllnode使うと捗る
https://github.com/nodejs/llnode backtraceでは#0〜3が全部in ⁇ ()としか表示されません
またnpmもコアダンプするのでllnodeはインストールできませんでした
nodeのバージョンは最新の9.3.0の他に8.9.3、6.12.2、4.8.7を試したのですが全てコアダンプしました
インストーラーにはpkgを使いました おおーそんなことってあるのか
FreeBSDの環境構築含めて最小限の再現手順を添えてIssueに上げたら?
ちなみに今のバージョンって8.10.0と9.8.0だよ Node.jsを使ってwindowsでmp3を再生するにはどうすればいいのでしょうか?
とりあえずググって出てきたplay-soundというのとplayerというのを使ってみたのですが
何故かうまくいきません
play-soundは外部プレイヤーを呼び出してるだけっぽいですし >>71
simplayerってのが気になってたから代わりに試して報告レスを書く権利をやろう >>72
ありがとうございます
それも見たのですが、コマンドを呼び出してるだけですよね
アプリを入れなくてもいいのはいいのですが、
windowsではwavしか再生できないというのが困ります
まぁwindowsがイケてないのですが・・ Electronのメインプロセスでサウンドが鳴らせないことが問題だったのですが
非表示のレンダラプロセスを起動しておいてそこで鳴らせばいいと気づきました
mp3を鳴らすモジュールもElectronを使うようにすれば実現できるでしょうね
メモリ使用量的に富豪的ですが Pixi.js ベースのゲームエンジン、Phaser とか使わないとできないのかも CommonJSのやつをESモジュールに書き換える際に依存モジュールってどうしてる?
ブラウザ用にバンドル出力すると.mjsじゃなくなっちゃうし axiosでdatファイルやsubjectファイルを取得するソフトを作っているのですが、文字化けしてしまいます。
jconvやiconv-liteなどのパッケージを使ったり、環境もDigitalOceanのドロップレットを使ったり
ローカルのWindows10で動かしたり色々しているのですが、どうしても文字化けが治りません。
どなたか、ご教示いただけませんでしょうか。 dat ファイルって、5ch の?
HTML に、文字コードを付けていないのだろ。
どうせ、CP932 だろ
強制変換すれば? >>79
ご回答ありがとうございます。
axiosで取得した時にSHIFT_JISのコードをaxiosが勝手にutf-8扱いしてデコードしていたために
おかしくなっていただけでした。 >axiosが勝手にutf-8扱いしてデコード
そうか?
鯖がUA観て送信塩湖変えてる可能性は? スクレイピングなら、Ruby で、Selenium WebDriver, Mechanize の方が簡単
JavaScript, Node は、面倒くさい。
まだ、Electron の方がマシ 参考までに。
Ruby で、Selenium WebDriver で、Chrome のHeadless mode で、
5ch をスクレイピングしたら、文字化けもせずに、テキストが取得できた
ブラウザが、CP932 を自動的に、UTF-8 に変換しているのかな?
driver.navigate.to "https://mao.5ch.net/test/read.cgi/linux/1479499953/8-9"
element = driver.find_element(:css, 'div[data-id="8"] > div.message > span')
puts "内容 :#{element.text}" 以前ならnodeでスクレイプはjsdomとjqueryが定番だったイメージ
最近は知らんけど 最近はヘッドレスChrome使う。(puppeteerなどのラッパーを使って)
seleniumと比べて挟むレイヤーが少なくて同じ以上の事ができる。
他のブラウザでやんなきゃならないときはSeleniumだね。セットアップが非常にめんどくさいけど。 Windows環境でもpuppeteerのヘッドレスChrome動くようになった? >>89
MBPでもWindowsは動くから分からない理由にならん >>90
MBPだから(いちいちwindows環境用意するのは面倒、従って)分からん MBPだから面倒とはよく分からんな
AT互換機やVMと大してWindowsセットアップの手間は変わらんのに Node.jsではグローバル変数はglobalの属性にすると知りました
jsファイルにグローバル変数のように書いてる変数はグローバル変数ではなかったのでしょうか? エントリーポイントのjsファイルも、
実際にはモジュールのように独自の名前空間に閉じ込められていたということなのでしょうか >>95
グローバル変数がグローバルオブジェクトのプロパティだというのはNode固有の話ではない。
ブラウザだとwindow、Nodeだとglobalでそのグローバルオブジェクトにアクセスできるというだけ。
>>96
仮に閉じ込められているとしても、その「外」が無ければどっちと捉えても同じ。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
AY2FW fs.createReadStream()のstart, endの値ってuintの範囲に制限されてるっぽくて困った GitHub見たら10.3.0で修正されてると見て試したら問題なかった 良かった スレタイに入ってるNashornオワタ/(^o^)\
JavaでJavaScriptを実行する「Nashorn」が非推奨に、ECMAScriptの速い進化に追いつけないと。代替案はGraalVM
https://www.publickey1.jp/m/blog/18/javajavascriptnashornecmascriptgraalvm.html それよりはzip slipの方が余程大事じゃねえの 標準のZIP展開は並列処理されず遅いので皆自分で書いたりして試したことがあると思うが
パスをそのまま信用しちゃまずいことあるだろうなってことは99.99%の作者が気づく
それをケアしていないのはバグではなく、素朴な実装を目指しただけ
つまり問題と責任は利用者側にある 実際のファイルへの書き込みはライブラリ外の場合も多いだろうし
特に標準が用意されていない環境でそういったライブラリを選ぶときは
きちんと知識を持った上で中身を確認して利用しろというだけのことでしかない GAEの無料枠で動くようになったけど今となっては遊び場にも微妙だな GAEこそ真のPaaS
そんなふうに考えていた時期が俺にもありました >>110
俺はだめだとは思わないけどdatastore周りとかじゃないかな。 nodistをインストールしたら、node7.2.1がインストールされました
このバージョンはどのような基準で決まるのでしょうか? 最新のLTSは8.9.0のようです
それが入るなら分かりますが・・ npmってのはnode.jsでサーバサイドアプリケーションを開発する人専用のツールではなく、
Javaで書かれたプログラムを実行するのにJavaVMが必要なように
何か使いたいアプリケーションがnode.jsで書かれていて、
それをインストールするために必要なものという認識でよいのでしょうか?
なんかちょっと使いたいものを調べるとなんでもnpmが出てくるのですが、
別にnode.jsで何かサーバサイドアプリケーションを作りたいわけではないので、
なんでいちいちnode.js導入しないといけないのだろうと思ってたのですが。 NodeJSはJavaScriptの処理系のひとつでブラウザを除けば最も広く使われている
NPMはパッケージマネージャ
そもそもNPMのCLIツールがJavaScriptで書かれていてNode上で動かすことが前提
NPMで導入可能なパッケージは必ずしもNodeを必要としないがNode上で動かすことを前提としたものも多い
例えばブラウザ向け開発でもWebpackとかでブラウザ用JSを生成するわけだがWebpack自体はNode上で動作する >>119-120
なるほど、どうもありがとうございます。
VMとかたとえが悪くてすみませんでした。
rpmとかでLinuxにアプリケーションをインストールするイメージで、
node.jsはOSに相当するプラットフォームのようにとらえていました。
あくまでも、その言語向けのアプリケーションを開発するために必要な、
ライブラリを管理するためのマネージャーなんですね。 >>121
みんなこういう例え話好きだが使ってみたほうが早いと思うぞ。
正直osで例えるのはまじで何が言いたいのかわからない nodeコマンドはjsインタプリタ。
nodeで動くjsモジュールが公式、非公式に色々提供されている。多彩なモジュールによりコマンドラインツールやwebサービス、ブラウザアプリ、デスクトップアプリまで開発できる。
パッケージマネージャはnpm。
nodeのモジュールのインストールと、スクリプトの実行機能をもっている。
スクリプト実行はnodeコマンドだけでもできるが大量のモジュールを使うアプリでは依存関係や実行タスク切替が必要になる。そこまで管理できるのがnpm。
npmではまだ機能不足だと感じる人たちはさらにwebpackのようなツールを使う。
web界隈ではcoffeescriptやtypescriptなどのaltjsのjsへの変換が日常的におこなわれる。こういったトランスパイラもnpmでインストールして実行できる。
またトランスパイラはaltjsの変換以外にも毎年アップデートされるjs(es)のパージョン間の違いや、ブラウザ環境とサーバー環境の違いを吸収したり、jsx,vuexなどのDSLの変換等も行うが、それらもnpmで導入出来るようになっている。 coffeescriptは滅んだよ。今altjsで生存確認取れるのはtypescriptだけ。 >>118
たとえ話に意味があるとは思えないが
python: python - pypi
python: python - conda (anaconda)
ruby: ruby - gem
perl: perl - CPAN
node.js: javascript - npm
linux: python - yum
linux: perl - rpm プロジェクト毎に3万ファイルとか50MB以上とかダウンロードしてくるけどこんなもん?
SSDが死にそう >>126
> SSDが死にそう
安心しろ。この程度でSSDが死ぬことはない
SSDの書き込み回数は1万回ぐらいと言われているが、それはセルごとだ。
1セルのサイズは多くても4ビットだ。もっとも1セル単位で
書き込むわけではなくブロック単位で書き込む。
ブロックサイズは製品にって違うが2KBとしよう
50MB = 50000KB、3万ファイルだから1ファイル1.6KB。
ざっくり大目に見てブロックサイズと同じで2KBとしよう。
つまり1ファイルで1ブロック書き込みをするということだ
ということは1プロジェクトのファイル数が3万とか50MBあったとしても
結局は1万回書き込みができるブロック毎に1回しか書き込みしないということだよ
さらに128GBのSSDであれば、128 * 1024 * 1024 = 134217728KB
これをブロックサイズで割ると67108864ブロックあることがわかる。
それぞれのブロックごとに1万回書き込みができるのだから
全ブロックで671088640000(約67千億回)が総書き込み可能回数となる
SSDはうまくブロックごとの書き込み数を平均化してくれるので
3万ファイル = 3万回の書き込み なので 22369621(約2千万)プロジェクトの
ダウンロードが可能ということだよ(1ファイル1ブロック書き込む前提) 将来プログラマーになりたい高校生です
去年どうやったらプログラム上手くなりますか?と5chで聞ききました。
とにかく何か作れ!と教えてもらいました。そして作りました。
レベルが低くて恥ずかしいのですが、JSで壁にブツカッてしまいました。
こちらのWEBなのですが、
http://www.pafumo.com/
地域を絞り込んで検索をしたら出来るのですが、
選択肢の中身がもとに戻ってしまうのです。
そしてサーバーサイドJSだったら、こういう問題も解決できるかもしれない。
と思いまして、今、導入を考えているのですが、
私のレベルは低すぎて、よく分からなくて、ココの皆さんに教えていただきたくて、
書き込みました。
レベルが低すぎてスイマセンが、なにかアドバイスを頂けませんか?
私は、サーバーサイドJSをやったほうが良いのでしょうか? >>128
これまじでつくったん?
高校生でこのレベルだったら日本じゃ食いっぱぐれないから自信持っていいよwすごい
将来有望!
phpやったことないけど、「php 入力値 保持」とかでググって解決できるかも? >>128
別にサーバーサイドJavaScriptだろうがphpだろうが大差ない
好きな言語を使えばいいし、言語による問題など無いに等しい
言語の壁なんてずっと先の話の話だ
現時点では自分自身の壁の方がずっと近くにある
あとなどうせ現時点では大したデータ入ってないだろうけど
そのコードおそらく脆弱性があるからな。
<input type="radio" name="gakureki" value="AND `学歴_int` IN(2,3)">高校
<input type="radio" name="gakureki" value="AND `学歴_int` IN(2,3,4)">専門
こんな感じでSQLの一部(らしきもの)をサーバーにそのまま投げてはいけない。
この部分は、サイト利用者が自由に書き換えられるから、SQLインジェクションという脆弱性になる
その結果サーバーの全てのデータの流出や削除が起こる可能性がある
仕事ではありえないレベル >>128
hiddenタグとかに埋め込むとかformでpostした内容を読み取ってvalueを書き替えるじゃん?
PHPをやったら簡単かも、htmlspecialcharsとか使えるし->その先はスレ違いで。 「たのしいRuby 第5版、2016」を、3回読んで、
無料のRails チュートリアルをやればよい
Rails をやれば、どのフレームワークにも応用できる
PHP は、Rubyよりも難しいから、素人レベルでは避ける方が無難。
数言語を学んでからの方が良い フレームワークの基礎は、Rails。
無料のRails チュートリアルをやった後に、以下の掌田津耶乃の本を読む
Node.js超入門、2017
Python Django 超入門、2018
Spring Framework 4 プログラミング入門、2014
Spring Boot プログラミング入門、2016 rubyは組み込みメソッドの仕様が恣意的で見た通りに動いてるとは限らない。
逐次確認が必要だが昔からドキュメント書きたくないでござるの人たちばっかりのコミュニティなのでrubyソース読む羽目になる(教祖もそうすべきと言っている)
Pythonが(書きにくく)読みやすいと言われるのに対しRubyが(好き勝手に書きやすく)読みにくいと言われるのはそのため。
また、似た機能を実現するためのメソッドがたくさんあり、まったく動作が同じ単なるエイリアスだったり、微妙に動作が違っていたりする。これも調べないと分からない。
構文レベルでも同様の混乱を引き起こしており、行き当たりばったりの機能追加が言語全体の一貫性を著しく損ねている状態。
例)https://qiita.com/jnchito/items/83410c0cda446efea582
なのでPythonに完敗して滅んだ。
動物の細胞内に共生して生き長らえているミトコンドリアのように、現在はRailsの内蔵バッテリーとしてのみ生存が確認されている。 >>128
クライアントに状態を保存したいなら、 WebStorage で事足りるかと思います
サーバに進んでもいいけど WebExtension でブラウザ拡張にするって手もありですかね Node.jsに興味がある者です(使ったことはありません)
Node.jsって非同期処理らしいけど、コールバック地獄になったりしないのでしょうか?
見通しの良いプログラム書けますか?
どんな用途に向いていますか?例えば企業のHP? 掲示板? ゲーム?
ド素人ですみませんが、教えてください。 firebaseとかをやると多少サーバサイド周りが楽になる。おすすめ >>139
NodeというかJavaScriptの文化が非同期中心
コールバック地獄に対してはそれを解消するために色々な機能の導入が進んでる
* ジェネレータ/yield
* promise
* async/await >>137
そのWebExtensionはSafari、特にMobile Safariで
使えるようになるのでしょうか? 最初からasync/awaitできるようにライブラリを再設計してもらいたいね それよりもasync awaitは、forEachとか関数を引数に取るようなメソッドを使うと
いつの間にかasyncの世界が解除されてしまうのツライ。そのせいでバグってるの何度かみた。lintツールで監視してほしいんだがないかなー? >>145
try catchが、機能しなくなったりとか。
await 入れ忘れてるとpromiseになっちゃうから >>146
だからlintで対応したいと言ってる。 lintでやることじゃない
TypeScriptで型チェックすればいいんじゃね >>149
つまり型推論を使わずに受け側の型を確定しろってこと?めんどくせえよ。
lintでasync function 内のスコープで関数を引数に取るような関数呼び出しがあったら警告する。くらいで良い サンプルコードとexpected/actual見ないと何とも言えんな TypeScriptなら推論してくれるだろ?どこが面倒くさいと言っているんだろうか。 >>128
128ですー!
お兄様達!ありがとうございました。
今回は色々反省点も多かったですが、自分の未熟さが又見えてきました。
本当にありがとうございました
今回はセキュリティを少し修正して一度つくりなおします
まずは・・・また空っぽのWEBサイトに戻りましたwww これより簡単な最新版インストール方法ないん?@ubuntu16.04
sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo npm install -g npm@latest nのnvmやnodebrewに対する利点欠点教えてくれ。移行の検討したい これ値上がりしてるけどもしかしてもう絶版なの?
実践Node.js プログラミング
https://www.amazon.co.jp/dp/479812947X/ では中古ですのでKindle版より安くお願いします。
裁断は不可です。 いやまぁ、もう持ってるんだけどね
なんかAmazon見てたらオススメ欄に明らかにこんな値段じゃなかった気がする価格で出てたから
なんか原書のIN ACTIONが改版してるみたいだね 基礎から学ぶ Vue.js、mio、2018/5/29
Vue の本が出た JavaScriptってウンコだな
並列処理ができるサーバーサイドでnode.jsよりマシな言語って何かある? >>164
C#と言ったんだが…
Visual Studioでも駄目ならもうこの業界から去った方がいいよ こんばんわ>>128です
ちょうど一ヶ月前に色々教えていただきました
あの時はありがとうございました
あれからずっとWEBサイトを作りました
WEBサイトと宿題以外何もやってません
http://www.pafumo.com/
その時に色々注意されたんですが
とにかく教えていただいたスレッド?にはまた書き込ませてもらいました
ワタシとしては頑張ったほうだと思うのですが
完全に生活リズムが崩れて体調も崩したり泣いたり色々ありましたが
とにかくコチラの皆さんに見ていただきたかったのです
とにかく1ヶ月は寝る間も惜しんでやりました
どうでしょうか?動きとかどうでしょうか?