[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/24 12:05 / Filesize : 170 KB / Number-of Response : 736
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【node.js】サーバサイドjavascript【Rhino】



1 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 10:12:15.70 ]
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

javascriptはrubyと比較してもかなり速い
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv

Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

node.js - googleが開発したV8エンジン上で実行できる処理系
nodejs.org/

233 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 17:51:35.34 ]
node.jsでは正規表現使えない?
b = a.match(/[0-9a-zA-Z_]/);でエラーが出るんだが

234 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:01:46.49 ]
>>233
勿論、使える

それと、/[0-9a-zA-Z_]/ としたいなら、/\w/ って書いたら?
エラーが出たのならエラー内容を書かないとわからないよ

正規表現についての質問は、他のスレでね

235 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:07:58.71 ]
こんなエラー
Error: Object #<Object> has no method 'match'

236 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:15:00.41 ]
>>235
考えられる原因は、変数 a が String ではない
もしかして、ファイルを読み込んで、それを正規表現で判定してる?
fs.readFile() 等で取得できる data は、String じゃなくて Buffer
だから、data.toString('utf8') して String に変える必要があるよ

237 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:01:05.66 ]
>>233 はマルチ臭いぞ

+ JavaScript の質問用スレッド vol.93 +
toro.2ch.net/test/read.cgi/hp/1323498887/

68 :Name_Not_Found:2011/12/14(水) 18:01:25.16 ID:???
IEで正規表現は使えない?
matchでエラーが出るんだけど

70 :Name_Not_Found:2011/12/14(水) 18:13:30.97 ID:???
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ServerSentEvent</title>
</head>
<body>
<script type="text/javascript">
var a = { comments: 'kom' };
var b = a.match(/[0-9a-zA-Z_]/);
document.write(b);
document.write(a);
</script>
</body>
</html>

IE9で上記のHTMLを起動するとmatchが云々言われる
www.dotup.org/uploda/www.dotup.org2380051.png


238 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:41:18.31 ]
Rhinoとかnode.jsとかいろいろあるみたいですが、実装が違うだけで言語仕様は同じものなんですか?
基本的には同じだけどそれぞれ拡張されていて方言があるとかですか?
中身以前の質問ですみません

239 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 22:59:04.91 ]
>>238
言語仕様があるという考えよりもブラウザごとに実装してるポイントが違うので
その最小公約数が Common.js みたいな捉え方を俺はしているが…

サーバーサイドのjsはまたちょっと違うから rhino はサーバーサイドなのか?
Javaでやるなら tomcat とか使いそうな印象があるが…ちょっと俺は知識不足で
上手く説明できないんだけど…

240 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:04:33.72 ]
最大公約数: greatest common divisor
最小公倍数: least common multiple

最大公約数の間違いだな。ボケてますな駄目ですな…

241 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:17:41.60 ]
どちらかといえば最小公倍数だと思うが



242 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:25:45.60 ]
最大公倍数だお

243 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:46:58.89 ]
function push(x){
var com = x;
return com;}
これでサーバーサイドに送り
http.createServer(function (req, res) {
if(req.method=='POST') {
var body='';
req.on('data', function (data) {
body +=data;
console.log(body);
var str = new String(qs.parse(body));
var reg = /comments=(\S*)/;
var x = str.match(reg);
console.log(x);
a = data;
});
こちらで受け取ります
console.logを見ると
comments=○○ //○○は受け取った変数
null
となります.
どうにかして○○の部分を抜き出せないでしょうか?

244 名前:238 mailto:sage [2011/12/15(木) 07:49:46.57 ]
どうもありがとうございますm(_ _)m

245 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 18:15:24.58 ]
var express = require('express');
var app = express.createServer();
app.use(express.bodyParser());
app.post('/', function(req, res){
console.log(req.body);
  var str = new String(req.body);
var reg = /{(\S*):\s'(\S*)'/;
var x = str.match(reg);
console.log(x[2]);
res.send('');
});
app.listen(3000);

上記を起動し
curl -d hoge=node localhost:3000/
と入力すると
console.log(x[2]);
の部分でエラーが起こります。
解決方法はないですか?


246 名前:デフォルトの名無しさん [2011/12/15(木) 18:35:13.70 ]
var str = new String("hoge=node");
これ実際に動かしてみろよ

247 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:03:22.26 ]
>>246
www.dotup.org/uploda/www.dotup.org2384257.png
同じようにエラーが出ます

248 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:09:20.47 ]
matchをstring以外に使ってエラーが出たとマルチポストしてた人か

249 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:14:43.29 ]
このerrorさえ取り除ければなんとかなると思うんです

250 名前:デフォルトの名無しさん [2011/12/15(木) 21:22:33.52 ]
>>247
テメーの書いた正規表現がクソ
hoge=nodeにマッチしないからxがnullになって落ちる
あとnew String(req.body)を使うより'' + req.bodyのほうが3倍速い

251 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:29:36.81 ]
Node.js のサイトがリニューアルしたな
v1 リリースも近いのかな



252 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:35:27.63 ]
>>250
5行目の
console.log(req.body);
を見ると
{}hoge: 'node'}
となっているので
var reg = /{(\S*):\s'(\S*)'/;
としたのですがダメなのですか?

253 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:39:39.01 ]
>>252
試しに、console.log(String(req.body)); と打ってごらん。それが答えだ

254 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:46:37.58 ]
出来ました
けどObjecktと表示されてしまいますね・・・
どうにかならないでしょうか?

255 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:55:33.65 ]
>>252
ああ、expressを使ってるから飛んできた時点でもうオブジェクトになってんのか
それならわざわざ文字列にして正規表現を使うまでもなく、req.body.hogeだけでいいだろ

256 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:57:31.92 ]
>>254
{ hoge: 'node' } の中身、"node" の部分を取得したいのなら

console.log(req.body.hoge); // 'node'

それと、Node.js をはじめる前に、もう少し JavaScript を知ったほうがいいよ

257 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 22:02:01.13 ]
最近流行りなのかJavaScriptをろくに知らない人がnodeをはじめる。
いいことだけどめんどくさいな。

>>250
はやいけど、newなしのString(str)のほうが見た目分かりやすいと思うが。


258 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 22:52:39.51 ]
php使いだけどnode.jsにするとどのような恩恵があるのですか?


259 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 23:30:20.06 ]
>>258
phpで表、node.jsで裏の作業すると捗ります。
node.jsでスクレイピングとかはやめてください。
そのうちpregや再帰が使えないとか愚痴り始めるので。

260 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 23:33:46.10 ]
>>259さんどうもありがとうございます
リアルタイムな通信に利用はしたいと思っているのでnode.jsは使いたいのですが
phpに出来てnode.jsで実現できないようなことがなければnode.jsのみで構築する事も検討したいのです
全般的にはphpに取って代わるような使い方にはnode.jsは不向きと捉えてよいでしょうか?


261 名前:245 mailto:sage [2011/12/16(金) 00:11:23.51 ]
もしかしてapp.postで受け取ったものはapp.postの外に持ち出せない?



262 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 00:12:41.53 ]
>>260
すみません。真面目に答えますね…。
まだ発展途上なのでなんとも言えませんが、
基本的にjavascriptそのままなので、phpのような表示は得意とは言えません。
ただjsdomなどHTMLを扱うライブラリはあります。

nodeはクライアント側jsのajaxのように、イベントリスナでつなぎます。
そしてhttpサーバを介さずスクリプト(node)がhttpサーバーとして、
直接個々のリクエストに答えますので、
httpの特定のURLのアクセスをトリガとするphpとは使い勝手が全く異なります。

非同期処理であれば真価を発揮しますが、逆にそれが必要でないなら、
php+apacheなどの方が楽に構築できると思われます。


263 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 00:21:36.44 ]
>>262
ご親切な対応ありがとうございます
リアルタイム名部分のみnode.jsに任せて
それ以外の部分はphpを使ってみます

264 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 12:57:19.46 ]
まさか、Node.js を CGI とかそんな形で使おうとしてないよな
Node.js 上で PHP を使おうとか。出来なくはないが・・・
思い過ごしならいいけど

265 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 13:02:08.93 ]
nodejs上でphpというnpmはあったとは思うがw

266 名前:デフォルトの名無しさん [2011/12/16(金) 18:31:35.87 ]
v0.6.6

267 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 19:30:13.67 ]
ejs内にjavascriptのコードを書いてみたけど実行されない
そういうものですか?
ejsを表示させると共に文字を記入くれって表示させたいんだけど

268 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 20:23:03.15 ]
>>261
外っていうのは、ブロックの外?
どこかわからないけど、持ち出すことは出来るはず

>>267
どんなのを書いたか教えて

269 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 12:48:05.58 ]
【ウェブアプリケーションという不幸 】

現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。

ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。

その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。

ウェブアプリケーションとは
虚構にしか他ならない。

ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。

270 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 12:48:33.81 ]
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。

だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。

ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。

包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。


271 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:26:02.94 ]
これがWEBプログラミングの出来ない者の嫉妬ってやつだ



272 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:27:37.76 ]
marutiotu
toro.2ch.net/test/read.cgi/hp/1323498887/158-159


273 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:32:27.09 ]
>>268
<html>
<head>
<title>chat</title>
<script type="text/javascript">
var name;
function func(){
while (name == "" || name == "null"){
name = window.prompt("名前を入力してください", "");
};
document.write(name);
};
</script>
</head>
<body>
<h1>test</h1>
<%= name %><br />
<form method="POST" action="/">
func();
<input type="text" name="name" id="name"/>
<input type="submit" />
</form>
</body>
</html>

こんなのを書きました

274 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 15:09:16.77 ]
>>273
"null" を null に

275 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 16:31:47.00 ]
>>270
はいはい、SSH端末とブラウザは同じレイヤーのもの。
SSH端末でネットのむこうのアプリを使うように
ブラウザでも使う。あとは向こうで続きをやろうなw

276 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 16:47:43.51 ]
↑なにこいつw

277 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:11:00.05 ]
>>276
コピペ野郎の相手なんて
この程度で十分だろ

278 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:26:26.33 ]
>>276
かまっちゃだめ。
ちょっとやばいからそいつ。

279 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:34:41.33 ]
自演乙

280 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:34:43.37 ]
>>275
キモッ

281 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:38:54.37 ]
>>275
荒すなよキモイ奴



282 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:07:12.44 ]
>>273
>>274 で、null の書き方を指摘したけど
それ以前に、どこにも func() を呼び出すものがない

他にもあるけど、JavaScript の質問スレに行ったほうがいい

283 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:25:20.88 ]
>>282
ということはejsでもjavascriptが利用可能ってことですね

284 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:25:47.24 ]
正式名称はnode.jsなの?それともNode.js?
正しくはNodeなんて書いてあるブログもあるけど、本当は何?

285 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:29:59.97 ]
node.js

286 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:42:15.35 ]
>>284
「そもそも "Node" なの? "Node.js" じゃないの?

当初は "Node.js" と呼ばれていましたが、
「正式名称は "Node" である。ただし曖昧さが出る場合は "Node.js" と表記しても良い」
という旨の記述が本家の Wiki にあります。」
blog.nodejs.jp/2011/10/node.html

287 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:52:03.26 ]
チャットが作りたいのですが非同期通信のシンプルな程シンプルなサンプルみたいなのどこかにありませんか?

288 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 19:09:51.67 ]
>>287
手軽に試すなら Socket.IO を使うといいよ
サンプルもそのサイトに書いてあるし、とても短いコード
socket.io/

289 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:08:51.07 ]
node.jsのサンプルと言えばチャットというくらい
サンプルある
githubにも、すぐ動くのがあったし、手元の本でもテスト駆動javascriptのサンプルでチャットが載ってた

290 名前:287 mailto:sage [2011/12/17(土) 22:13:10.02 ]
express+socket.ioを入れてサンプルコピペでできました


291 名前:287 mailto:sage [2011/12/17(土) 23:01:26.74 ]
でもサイトを作るごとにnpmでexpressとsocket.ioを入れるのって無駄なんですが
windowsなのでnode.exeの本体が置いてある所に最初npmでexpressとsocket.ioをインストール済みなんですよ



292 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:12:58.02 ]
>>285-286
レスありがとうございます。あと、遅れてすみません
曖昧さを避けるために .js をつけているんですか、知りませんでした

293 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 09:39:49.16 ]
>>227
find . -iname xxx\*


294 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 19:13:20.74 ]
node.jsはwebサーバソフトウェアですか?

295 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:44:11.51 ]
webサーバソフトウェアってなんですか?

296 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:25:03.81 ]
apacheにはWebサーバソフトウェアとあるので同じものではないのですか?

297 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:27:37.77 ]
>>296
微妙だがNodeは違うと思う
apacheはソフトウェアだね

298 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:30:13.02 ]
>>1が読めないのか

299 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:51:08.99 ]
>>296
Web アプリケーションサーバではありません。
Apache, Nginx のような HTTP サーバ実装でもなければ、Tomcat のようなアプリケーションサーバでもありません。
Node はあくまでサーバサイドで JavaScript を動かす実行環境です。

300 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:52:36.67 ]
>>298
>>1のどこに答えが書いてあるん?

301 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:56:40.84 ]
>>299
そこまで言って置いてそれは無いわ。
サーバーサイドである必要すら無いんだから。



302 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:32:37.77 ]
>>301
はぁ?>>299はnode.js日本サイトblogの転記だぞ?
それすら否定すんの?
それと「あくまで」サーバーサイドだから

一体どんな回答が欲しいんだよ…

303 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:36:55.14 ]
>>302のURLね
blog.nodejs.jp/2011/10/node.html
もう、これテンプレに入れたら?

304 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:28:06.26 ]
Web アプリケーションサーバでなければなんて呼べばいいんだ?

305 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:52:42.42 ]
>>304
正直どうでもいいし何でもいいけど、論理的な決まりとしては
サーバーサイドでJavaScriptを動かす実行環境

node.jsでアプリを作って稼働させても根本的概念は変わらない

306 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:33:40.14 ]
JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?

307 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:34:35.24 ]
>JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?
修正
JavaScriptをサーバとして動かすためのnode.jsってことでいいの?

308 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:31:52.91 ]
>>307
全然違くてワロタww

クライアントでJavaScript動かす時は基本的にブラウザ上で動くだろ?
Nodeはサーバー上で動くJavaScript

ただそれだけ
だからアプリケーションサーバーやサーバーソフトウェアじゃないのだよ

技術者ですら、これだけ理解できないのだから
営業には全く理解できないだろうなw

309 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:36:58.15 ]
ここはnode.jsのことばかりだけどstandard i/o可能なjsやrhino jsの話題でもいいの?
と言ってもさしあたり話題にするようなネタはないけど

310 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:42:27.13 ]
>>308
んじゃサーバはどこに行くんだよってなるぜ

311 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:50:51.59 ]
node.jsは特定のサーバーからは独立した単独のスクリプティング環境。

rubyとかperlとかpythonとかと同じ。
node.jsの実体はスタンドアロンのスクリプト実行環境に過ぎないからローカルのシェルスクリプトとして使うこともcgiとして呼び出すことも可能だろう。

ただ開発の方向にしても主な用途にしてもあくまで組み込みのhttpサーバーライブラリを使ってサーバーを組み立てることを想定してるけどな。

一言でいうならnode.jsとはブラウザの中で実行されるのが普通のjavascript処理系をスタンドアロンのスクリプト実行環境にして、そこに組み込みのサーバーライブラリやローカルスクリプトとして必要なIOその他のライブラリをくっつけたもの。



312 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:02:01.10 ]
あと、わからない言ってる人はハードウェアとしてのサーバーとソフトウェアとしてのサーバーの区別がついてないんじゃないかな…

313 名前:308 mailto:sage [2011/12/22(木) 18:10:02.19 ]
>>310
>>311の通りだ
サーバー上で動いてる以上サーバーはどこに行くんだよ?なんて考え方はないだろ
>>308>>311をよく読め


314 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:49:50.06 ]
node.jsでプロキシ経由で外部サイトにアクセスってできますか?

315 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:07:11.81 ]
WSHのJScriptをウェブサーバ用途に特化させたみたいな?と思っとけばいいんすか?

316 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:31:18.42 ]
>>315
それが今まででは一番近い理解かも知れない
Webサーバ用途に特化…というと微妙に誤解を招く書き方なので
サーバ機で、Webサーバソフトと共に使う用途に特化、という感じか
別にサーバソフトがなきゃ、ちょっとしたJavaScriptの動作環境でしかない

317 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:33:51.69 ]
>>315
大着して言うと、そんな感じかな
クドいようだけどwebサーバーじゃなくてwebサーバー的に利用できる。って感じかな

あくまでScriptは手段とかツールに近いからアプリとは断言したくないんだろうね

318 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:52:20.96 ]
ありがとう
なんとなくわかった

319 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:31:33.68 ]
なんで誰もnodeをちゃんと説明できないんだ?
本当はきちんと理解してないんだろう?

サーバーサイドで動くとか、別にnodeをクライアントに
インストールすればクライアントでも動くんだから的はずれだよ。

簡単に言うとnodeっていうのは JavaScript+組み込みライブラリ だよ。

例えばブラウザに搭載されているJavaScript、これにはDOMを操作する
機能がついているが、これはJavaScriptの範囲ではないというのはわかるだろう?
つまりJavaScriptにはDOM機能が ”欠けている” と言えるわけだ。
ブラウザはその欠けているDOM機能を追加したもの。

JavaScriptには他にも機能が欠けていて、たとえばファイルの読み書き機能。
nodeはその欠けているファイル読み書きライブラリなどを追加したもの

他の言語なら単に「便利なライブラリを作りました」で終わるような話だけど
JavaScriptには他のライブラリを読み込むincludeやuseなどの文法も欠けているので
既存のJavaScriptを拡張しなければ実現不可能だった。

nodeによってJavaScriptが汎用のスクリプト言語になったわけで
ウェブサーバー等も実装することが可能になったということ。

320 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:34:45.73 ]
んー
nodeはDOM APIを含んでるの?含んでないの?どっちー?

321 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:40:12.14 ]
nodeにDOM APIは含んでいない。
ただし外部ライブラリを読み込む機能は付いているので
DOM APIを提供しているライブラリもあるかもしれない。

それはPerlにDOM APIは含まれていないが、
CPANモジュールを使ってHTML Parserなどで
DOMを操作できるのと同じ事。



322 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:51:50.85 ]
> JavaScript+組み込みライブラリ
これもちょっと俺には定義としてはピンとこない説明だなあ
JavaScriptというのはただの言語で、インタプリタかVMかJITかといった詳細は
ともかくとして、JavaScriptで書かれたプログラムを動かすためには
何らかの実行環境(ホスト)がいる
Perl言語で言ったらperlコマンド(あるいはperl.exe)だな
JavaScriptの場合それがWebブラウザであったりWSHだったりするんだが、
node.jsもその一種、つまりJavaScriptの実行環境の一種に過ぎない

JavaScript実行環境としてのnode.jsの特徴は、google chromeで使われている
V8エンジンを使っていて高速であることと、おもに並列処理に特化したサーバ向きの
ランタイム(ライブラリ)実装を持っていること
V8を実装しているのはgoogleだから、node.jsの主成分はランタイムの部分という
ことになる
「サーバ向き」なだけで、サーバにしか使えないかといえば、別にそういうことはない

323 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:56:45.27 ]
V8はコマンドラインから実行できる。

324 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:02:34.01 ]
linuxで使いたいですがどうすればいいんですか?

325 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:45:23.48 ]
サーバーサイドという字面に振り回されすぎじゃないのかな。

サーバーサイドの○○というのは、今までクライアント(ブラウザ)でしか使えなかったものをサーバーコンピュータ上でも使えるようにしたよという以上の意味は無い。

現代のサーバーコンピュータの多くはwindowsやunix系OSで構成されている。そしてwindows上で実行可能なものは何であれwindowsを使ったサーバーコンピュータ上で実行可能だし、unix系OSもまた然り。(環境依存のものは除く)

現実的には「サーバーサイド○○」というのは、サーバーコンピュータで使用されているところのwindowsなりunixOS上で(サーバープログラムと連携可能な何らかの形式で)実行可能な○○というのと同義と考えていい。

<<324
nodeのソースコードをダウンロードしてmakeするか、nave等の管理コマンドをダウンロードして実行する。やり方はググれ。

326 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:47:17.91 ]
>>325
アンカーミスった。
>>324 な。


327 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:02:06.54 ]
えー!
node.jsはlinuxじゃ使えないんですか!!
面倒なのは大っ嫌いなので諦めます

328 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:10:44.61 ]
そんな頭でLinuxを使うほうが面倒だと思うんだ

329 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:32:29.12 ]
多分ubuntu入れてるんだろうな

330 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:36:54.44 ]
元々の質問は>>296だし、何でクライアントの話に持っていくんだよ…
クライアントでNodeやる云々はそもそもスレタイ的にスレ違い
Nodeの説明としてはいいと思うけど

331 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:08:19.34 ]
>>296 の質問には多分「違う」と答えるのが適切と思われる。

webサーバーソフトウェアという言葉でどんなものをイメージしているのかは知らないが、おそらく一式をダウンロードして設定を行なって起動すればその時点で完全なwebサーバーとして動作するもののことを言っているのだろう。

何度も言われている通りnodeはあくまでスクリプト(プログラミング言語)実行環境でしかない。
言うなれば「webサーバーソフトウェア」そのものをjavascriptで作るためのもの。



332 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:22:30.42 ]
C#と.Netの関係に似てるかもしれない

333 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:47:08.66 ]
>>314 出来ない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef