节点上的 RequireJS 出现问题

Trouble with RequireJS on Node

本文关键字:问题 RequireJS 节点      更新时间:2023-09-26

我正在尝试使用 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;
});

。然而,这只会溢出一堆错误:

计时器.js:103 if (!process.listeners('uncaughtException').length) 抛出 e; ^ TypeError: 無法召脫未定義的方法 'listen' at/home/ssp/boot.js:13:7 at Object.context.execCb (/home/ssp/node_modules/requirejs/bin/r.js:1729:33) at Object.Module.check (/home/ssp/node_modules/requirejs/bin/r.js:969:51) at Object.Module.enable (/home/ssp/node_modules/requirejs/bin/r.js:1239:22) at Object.Module.init (/home/ssp/node_modules/requirejs/bin/r.js:882:26) at Object.context.makeRequire.mixin.isBrowser [as _onTimeout] (/home/ssp/node_modules/requirejs/bin/r.js:1505:36) at Timer.list.ontimeout (timers.js:101:19) root@nodeapp:/home/ssp# 节点引导

计时器.js:103 if (!process.listeners('uncaughtException').length) 抛出 e; ^ TypeError: 無法召脫未定義的方法 'listen' at/home/ssp/boot.js:13:7 at Object.context.execCb (/home/ssp/node_modules/requirejs/bin/r.js:1729:33) at Object.Module.check (/home/ssp/node_modules/requirejs/bin/r.js:969:51) at Object.Module.enable (/home/ssp/node_modules/requirejs/bin/r.js:1239:22) at Object.Module.init (/home/ssp/node_modules/requirejs/bin/r.js:882:26) at Object.context.makeRequire.mixin.isBrowser [as _onTimeout] (/home/ssp/node_modules/requirejs/bin/r.js:1505:36) at Timer.list.ontimeout (timers.js:101:19)

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

谢谢!

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

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

var define = require("amdefine")添加到启动文件。

并在您的应用程序文件中:

define(["express" ], 
   function ( express ) {
     var app = express();
     app.configure( "development", function(){
     app.use( express.errorHandler() );
   }); 
   return app; 
});