0

运行如下代码的节点输出为:

all Loaded
dbModule undefined
mongoose loaded

我无法在 appMod2 中获得对 dbMod2 的引用。我应该尝试什么?

//server.js
var requirejs = require( 'requirejs');

process.on( 'uncaughtException', function(error) {
    console.log( 'Exception ' + error.stack);
    process.exit( 1);
});

requirejs.config({
    baseUrl: '.',
    nodeRequire: require
});

requirejs(['./appMod2'], function() {
    console.log( "all Loaded");
})

// appMod2.js
require(['./dbmod2'], function( dbmodule) {
    console.log( "dbModule " + dbmodule);
});

// dbmod2.js
require(['mongoose'], function( mongoose) {
    Schema = mongoose.Schema;
    console.log( "mongoose loaded");
});
4

1 回答 1

0

用'define'替换'require'调用并向模块添加return语句:

// dbmod2.js
define(['mongoose'], function( mongoose) {
    Schema = mongoose.Schema;
    console.log( "mongoose loaded");

    return 'dbmod2';
});

// appMod2.js
define(['./dbmod2'], function( dbmodule) {
    console.log( "dbModule " + dbmodule);

    return 'appMod2';
});

我得到这个输出:

mongoose loaded
dbModule dbmod2
all Loaded

在requirejs中,传递给依赖数组后面的函数的对象是依赖返回的对象

于 2013-02-06T22:18:10.287 回答