web-dev-qa-db-ja.com

nodejs connectは静的を見つけることができません

注: here を指定して他のソリューションを試しましたが、うまくいきませんでした

NodeJsの初心者。私はAngularJSプロを追いかけようとしていますが、NodeJsサーバーの設定に追われています。本によると、私はnodejsをインストールし、npm install connectを使用して接続パッケージをインストールしました

次に、nodejsフォルダーの隣のフォルダーにangularjsをダウンロードしました。次に、サーバーに接続するserver.jsファイルを作成しました。ファイルの内容は次のとおりです。

    var connect = require('connect');
connect.createServer(connect.static("../angularjs")).listen( 5000);

次を使用してこのserver.jsファイルを実行すると:

node server.js

次のエラーが表示されます。

 function app(req, res, next){ app.handle(req, res, next); }
 merge(app, proto);
 merge(app, EventEmitter.prototype);
 app.route = '/';
 app.stack = [];
 return app;
 has no method 'static'
   at Object.<anonymous> (C:\web\nodejs\server.js:2:36)
   at Module._compile (module.js:456:26)
   at Object.Module._extensions..js (module.js:474:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:312:12)
   at Function.Module.runMain (module.js:497:10)
   at startup (node.js:119:16)
   at node.js:906:3

アイデアはありますか?ありがとう。

116
Sheraz

接続パッケージは、コードベースの最新の3.xバージョンにいくつかの変更を加え、staticミドルウェアを独自のパッケージに移動しました。 ここに移動されたパッケージのリストを表示できます

したがって、2つのオプションがあります。

オプション1
古い2.xバージョンのconnectをインストールして、そのまま使用できます。

$ npm install [email protected]

最新の2.X.Xバージョンをインストールすると、現在の実装が適切に機能します。

オプション2
引き続き3.xバージョンの接続を使用し、serve-staticを追加することもできます。

$ npm install serve-static

また、server.jsファイルを更新して、新しいserve-staticモジュールを含める必要があります。

var connect = require('connect'),
    serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("../angularjs"));
app.listen(5000);
218
dylants

ダイラントによる答えは役に立ちます。ただし、同じエラーを解決するために私が従った正確な手順は次のとおりです。 1.コマンドウィンドウで、nodeJSをインストールしたディレクトリにディレクトリを変更します。 2.すでにnpm install connectを実行した後、次を実行します。

npm install serve-static

3.次のコードを使用して、server.jsという名前のファイルを作成します。

var connect = require('connect'),
serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. まだコマンドウィンドウで、nodeJSをインストールしたディレクトリで、次を実行します。

    node server.js

  2. URLに移動します http:// localhost:5000/test.html

これは動作するはずです。ここに私のディレクトリ構成があります:C:\ NodeJSInstallLocation\angularjs

8
joey
var connect = require('connect'),
    serveStatic = require('serve-static');

connect().use(
    serveStatic("angularjs")
).listen(5000);
1

あなたはこのような何かを試してみたいかもしれません

var express = require('express');
var app = express();
app.use(express.static('angularjs'));
1
Gautam Anand