2

誰もがサンプルを機能させているようですが、私のものは機能しません...

私はnodejs0.8.2をWindows764ビットにインストールしています。TypeScriptnpm install -g typescriptサポートを取得するために行いました。次に、TypeScriptからソースをダウンロードしてサンプルを試しましたが、ノードサンプルをコンパイルできません。次のエラーメッセージが返されます。

c:\..\..\typescript\bin\tsc.js:21182
           if(_fs.existsSync(path)) {
                  ^
TypeError: Object #(Object) has no method 'existsSync'
...
...

他の誰かがこの問題を見たことがありますか?

何も見つからずに何時間も探し回っています。

私がこのコードを持っているとしましょう:

///<reference path="node.d.ts"/>


import http = module("http");

var server = http.createServer(function (req, res)
{
    res.writeHead(200, { 'ContenType': 'text/plain' });
    res.end('Hello World');
});

server.listen(1337);

これをVisual2012Express for Webに入力しましたが、エラーは表示されませんでした。参照が設定されており、インテリセンスは正常に機能しています。しかし、ノードでコマンドラインツールを使用してこのファイルをコンパイルすると、さらに表示されるエラーが表示されます。自分のコードに_fs.existsSyncを含めませんでした。

わかりました...tsc.jsとnodejsをいじってみました...ノードエンジンのrequire('fs')から作成された_fsオブジェクトにはexistsSyncという関数がまったくないことに気付きました...

もう少し検索した後...どうやらこの関数はパスモジュールの下にあるようです...代わりにパスモジュールのexistsSync関数を使用するようにtsc.jsを編集してみます。

4

2 に答える 2

2

わかりました...代わりに_path.existsSyncを使用するようにtsc.jsを変更してください。しかし、もう少しいじった後、システムのノードバージョンはまだv0.6.2であることがわかりました。以前にサイトからダウンロードしたv0.8.12をインストールしようとしましたが。v0.6.2を削除してv0.8.14をインストールした後、fsモジュールにターゲット関数が含まれるようになりました。

このシステムのノードバージョンが0.6.2で動かなくなったのはなぜだろうか〜''〜

于 2012-10-29T04:04:12.700 に答える
1

問題は、コードにタイプミスがあるためだと思います。を使用してみてくださいfs.existsSync(path)。存在しないオブジェクトにメソッドを割り当てようとしています。

fs.existsSync('path/to/file');

または fs.exists()上記と同義であり、接続が成功した場合にのみコールバックを使用します。

fs.exists('/path/to/file', function (exists) {
  util.debug(exists ? "it's there" : "no passwd!");
});

http://nodejs.org/api/fs.html#fs_fs_exists_path_callback

于 2012-10-26T17:08:01.493 に答える