node.js expressのスケルトンコードでエラーCannot find module ‘jade’が発生する

Javascript

node.jsのexpressで自動生成されたスケルトンコードを実行すると下記のようなエラーが発生しました。

 Express
 500 Error: Cannot find module 'jade'
 at Function.Module._resolveFilename (module.js:338:15)
 at Function.Module._load (module.js:280:25)
 at Module.require (module.js:364:17)
 at require (module.js:380:17)
 at new View (.../node_modules/express/lib/view.js:43:49)
 at Function.app.render (.../node_modules/express/lib/application.js:486:12)
 at ServerResponse.res.render (.../node_modules/express/lib/response.js:801:7)
 at exports.index (.../routes/index.js:7:7)
 at callbacks (.../node_modules/express/lib/router/index.js:164:37) 
 at param (.../node_modules/express/lib/router/index.js:138:11)

jadeモジュールがapp.js以下にインストールされていないことが原因です。
app.jsがあるディレクリで下記コマンドを実行すると正常に実行できるようになります。

 npm install -d

node.js Windowsでの開発の仕方

Node.js MySQLに接続して結果を表示するサンプルコード
node.js
Javascript

Node.jsをWindows上で開発するのはとっても簡単です!

下記から
https://nodejs.org/ja/

推奨版をダウンロードして実行するだけです(笑)
これを書いている現在(2017/03/31)時点で、6.10.1LTSが推奨版です。

インストールできたかどうかは、コマンドプロンプトから、node -h とでもやってみましょう。

node-js-help.png

node.js TypeError

Javascript
node.js

node.js TypeError: first argument must be a string or Buffer

かなりメモ的な話なのですが、node.jsをアップグレードしたらこのようなエラーが出るようになりました。

 response.write(JSON.parse(JSON.stringify(data)));  

としていたところを

 response.write(JSON.stringify(data));  

としたら治りました!

node.js Hello Worldを表示させる

Javascript

node.js Hello Worldを表示させる

node.js version 0.2.2

node.js インストール]]で[[node.jsをWebサーバーにインストールし終わったら、次はHello Worldを表示させてみます。

次のようなスクリプトを書いて、example.jsという名前でWebサーバーに保存します。
内容は、8124番のポートでこのWebサーバーに接続すると、「Hello World」が表示される、というものです。

 var http = require('http');
 
 http.createServer(function (request, response) {
   response.writeHead(200, {'Content-Type': 'text/plain'});
   response.end('Hello World\n');
 }).listen(8124);
  
 console.log('Server running at http://127.0.0.1:8124/');

サーバー上で、このexample.jsをnodeというコマンドで実行します。

 # node example.js
 Server running at http://127.0.0.1:8124/

と表示されたでしょうか?
されていれば、動作しています。

これで、このWebサーバーのどこに接続しても、ポート番号8124で接続すれば、「Hello World」と表示されるかと思います。

 http://Webサーバーのアドレス:8124/以下任意のパス

Webシステム開発のご依頼はこちら

node.js GET POSTパラメーターを取得する

Javascript

node.js GET POSTパラメーターを取得する

node.jsでGET、POSTのパラメーターを取得する方法です。
下記のサイトのコピーではありますが(ありがとうございます。)

http://snippets.dzone.com/posts/show/13311

 var sys = require ('sys'),
 url = require('url'),
 http = require('http'),
 qs = require('querystring');
 
 http.createServer(function (req, res) {
    
     if(req.method=='POST') {
            var body='';
            req.on('data', function (data) {
                body +=data;
            });
            req.on('end',function(){
                
                var POST =  qs.parse(body);
                console.log(POST);
            });
    }
    else if(req.method=='GET') {
        var url_parts = url.parse(req.url,true);
        console.log(url_parts.query);
    }
    
 
 }).listen(1337, "127.0.0.1");

です。

たとえば、弊社のWebサーバーだとして

http://onlineconsultant.tv:1337/?hogehoge=test

とやると、GETはコンソールに

 { hogehoge: 'test' }

と表示されます。

  • bbb — aaa {2015-10-31 (土) 22:35:20}
  • b2 — a1 {2015-10-31 (土) 22:35:44}