0

我正在尝试使用 RequireJS 根据此处的说明在我的节点项目中加载服务器端模块: http ://requirejs.org/docs/node.html

我的引导文件如下所示:

var requirejs = require( "requirejs" );

requirejs.config({ nodeRequire: require });

requirejs([ "app" ], function( app ) {

  app.listen(80, function(){
    console.log( "We be shuffling..." );
  });

});

然后,我有一个像这样的应用程序文件......

requirejs([

    "express"

  ], function ( express ) {

  var app = express();

  app.configure( "development", function(){
    app.use( express.errorHandler() );
  });

  return app;

});

...然而,这只是溢出了一堆错误:

timers.js:103 if (!process.listeners('uncaughtException').length) throw e; ^ 类型错误:无法在 Object.context.execCb (/home/ssp/node_modules/requirejs/bin/r.js:1729:33) 处调用 /home/ssp/boot.js:13:7 未定义的方法“侦听”在 Object.Module.check (/home/ssp/node_modules/requirejs/bin/r.js:969:51) 在 Object.Module.enable (/home/ssp/node_modules/requirejs/bin/r.js:1239: 22) 在 Object.Module.init (/home/ssp/node_modules/requirejs/bin/r.js:882:26) 在 Object.context.makeRequire.mixin.isBrowser [as _onTimeout] (/home/ssp/node_modules/ requirejs/bin/r.js:1505:36) 在 Timer.list.ontimeout (timers.js:101:19) root@nodeapp:/home/ssp# 节点启动

timers.js:103 if (!process.listeners('uncaughtException').length) throw e; ^ 类型错误:无法在 Object.context.execCb (/home/ssp/node_modules/requirejs/bin/r.js:1729:33) 处调用 /home/ssp/boot.js:13:7 未定义的方法“侦听”在 Object.Module.check (/home/ssp/node_modules/requirejs/bin/r.js:969:51) 在 Object.Module.enable (/home/ssp/node_modules/requirejs/bin/r.js:1239: 22) 在 Object.Module.init (/home/ssp/node_modules/requirejs/bin/r.js:882:26) 在 Object.context.makeRequire.mixin.isBrowser [as _onTimeout] (/home/ssp/node_modules/ requirejs/bin/r.js:1505:36) 在 Timer.list.ontimeout (timers.js:101:19)

有没有人有任何建议我错过了什么?

谢谢!

4

2 回答 2

0

如果您的意图是将 require 与 express 一起使用,为什么不使用自动设置脚本呢?有关如何使用 npm 设置 express 的说明,请参阅http://expressjs.com/guide.html#executable基本上,您只需在命令行上使用 express。要求包含在设置中。

于 2013-01-26T17:25:48.227 回答
0

你需要定义()你的“模块”应用程序而不是使用requirejs(),因为你需要先声明你的模块。

添加var define = require("amdefine")到您的引导文件。

并在您的应用文件中:

define(["express" ], 
   function ( express ) {
     var app = express();
     app.configure( "development", function(){
     app.use( express.errorHandler() );
   }); 
   return app; 
});
于 2015-05-20T15:25:54.857 回答