0

Express フレームワークで node.js を使用し、ルーティングがどのように機能するかを理解しました。

app.get('/save',webcalender.save);

この機能を備えた webcalender ファイルがあります。

exports.save = function(req, res){
res.send(req.query["headline"]);};

しかし、別の関数を作成してそこで使用するにはどうすればよいでしょうか。

exports.test = function() { console.log("test"); }

私が試してみました:

exports.save = function(req, res){
    test(); or webcalender.test or also test = webcalender.test(); and then test;
res.send(req.query["headline"]);};

助けてくれてありがとう

4

1 に答える 1

2

この質問は少し不明確です。

save関数はいくつかで定義されwebcalendar.js、インポートされていると思います

var webcalendar = require('./webcalendar.js');

2つのシナリオで答えを壊します。

test機能は同じと仮定してwebcalendar.js

その後、次のようなことができます

var test = function() {console.log("test");}
exports.test = test;

または1行で

var test = module.exports.test = function() {console.log("test");}

そしてtest、同じモジュールで使用するには、test();あなたがしたように単に呼び出します.

iftestが別のモジュールで定義されている場合

モジュールtest.jsで使用するには、次のようにrequireする必要があるとしましょう:webcalendar.js

var test = require('./test.js').test;
exports.save = function(req, res){
    test();
res.send(req.query["headline"]);};

または単に

exports.save = function(req, res){
    require('./test.js').test();
res.send(req.query["headline"]);};

これはほとんどの場合をカバーするはずですが、そうでない場合は、先に述べたように不明であるため、質問を明確にしてください。

また、nodejsモジュールに慣れて、なぜ、何を、いつエクスポートする必要があるかを理解することをお勧めします。これは、関数をエクスポートする理由が明確ではないためですtest(モジュールでのみ使用される場合webcalendar.js)。 これはnodejsが必要とする別の良いリソースです

幸運を!

于 2012-06-10T15:24:49.150 に答える