1

express.jsサブモジュールを使用できず、npmに対して基本的なものが不足していると思います。このチュートリアルに従って、簡単な認証システムを構築しようとしています。

アプリディレクトリで表現するパス:

./node_modules/express/lib/express.js

私のアプリ:

var express = require('express');
var app = express.createServer();
app.use(express.bodyDecoder()); // problems happen here

そして、これが何が起こるかです:

meeeeee$ node app.js 

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
TypeError: Object #<Object> has no method 'bodyDecoder'
    at Object.<anonymous> (/Users/nflacco/Projects/santorinillc/js/auth-demo/app.js:3:17)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)

また、参考のために、私のpackage.jsonファイル:

{
    "name" : "my dirty little app",
    "version" : "0.0.1",
    "dependencies" : 
    {
        "express" : "2.5.9",
        "connect" : "1.8.7",
        "optimist" : "0.3.4"
    }
}
4

1 に答える 1

1

チュートリアルは を使用してexpress 1.0.0rc4おり、あなたは を使用しています2.5.9以前のバージョンの express は、1.x より前のバージョンのconnectに依存しています。

bodyDecoder()connect 1.xで名前が変更されbodyParser()ました。問題のあるコード行を次のように変更します。

app.use(express.bodyParser());

また、チュートリアルで使用されているバージョンと開発中のバージョンとの間のその他の違いを説明するために、Expressの 1.x から 2.xへの移行ガイドを参照することもできます。

于 2012-07-26T01:00:33.917 に答える