相关疑难解决方法(0)

CommonJS,AMD和RequireJS之间的关系?

我对CommonJS,AMD和RequireJS仍感到非常困惑.即使阅读了很多.

我知道CommonJS(以前称为ServerJS)是一个用于在浏览器外部使用语言时定义一些JavaScript规范(即模块)的组.CommonJS模块规范有一些像Node.js或RingoJS的实现,对吧?

CommonJS,异步模块定义(AMD)和RequireJS之间有什么关系?RequireJS是CommonJS模块定义的实现吗?如果是的话,那么什么是AMD呢?

javascript module amd commonjs requirejs

817
推荐指数
5
解决办法
17万
查看次数

module.exports"模块未定义"

所以,我正在使用RequireJS和React,尝试加载第三方组件,该组件已安装:

npm install react-autocomplete
Run Code Online (Sandbox Code Playgroud)

结构在这里:https://github.com/rackt/react-autocomplete/tree/master/lib

现在,我有一个main.js文件,在加载requireJS时启动,如下所示:

require.config({
paths: {
      "react" : "react/react",
      "jsx-transformer" : "react/JSXTransformer",
      "react-autocomplete" : "node_modules/react-autocomplete/lib/main"
    }
});

require(["react"], function(react) {
    console.log("React loaded OK.");
});

require(["jsx-transformer"], function(jsx) {
    console.log("JSX transformer loaded OK.");
});

require(['react-autocomplete'], function (Autocomplete) {
    console.log("React autocomplete component loaded OK.");
    var Combobox = Autocomplete.Combobox;
    var ComboboxOption = Autocomplete.Option;
    console.log("Autocomplete initiated OK");
 });
Run Code Online (Sandbox Code Playgroud)

现在,它都加载正常,但第三个require语句为第三方组件中的main.js文件抛出"模块未定义",如下所示:

module.exports = {
  Combobox: require('./combobox'),
  Option: require('./option')
};
Run Code Online (Sandbox Code Playgroud)

我一直在阅读这与我试图要求一个CommonJS风格的模块有关,但我无法弄清楚如何自己修复它,因为我是新手.

有没有人有一个明确的例子,我怎么能解决这个问题?

javascript commonjs requirejs reactjs

24
推荐指数
2
解决办法
6万
查看次数

如何在两个node.js实例之间进行通信,一个客户端一个服务器

我是node.js的初学者(事实上刚刚开始).其中一个基本概念对我来说并不清楚,我在这里要求并且在SO上找不到.

在网上阅读一些教程,我写了一个客户端和服务器端代码:

服务器端(比如server.js):

var http = require('http'); //require the 'http' module

//create a server
http.createServer(function (request, response) {
  //function called when request is received
  response.writeHead(200, {'Content-Type': 'text/plain'});
  //send this response
  response.end('Hello World\nMy first node.js app\n\n -Gopi Ramena');
}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)

客户端(比如client.js):

var http=require('http');

//make the request object
var request=http.request({
  'host': 'localhost',
  'port': 80,
  'path': '/',
  'method': 'GET'
});

//assign callbacks
request.on('response', function(response) {
   console.log('Response status code:'+response.statusCode);

   response.on('data', function(data) {
     console.log('Body: '+data);
   });
});
Run Code Online (Sandbox Code Playgroud)

现在,要运行服务器,我键入 …

node.js

19
推荐指数
1
解决办法
4万
查看次数

`require'socket.io-client.js'`无效

我能够在我自己的服务器上运行基本的socket.io服务器应用程序,并通过任何Web浏览器直接请求它(我尝试了FF,chrome和IE7都可以工作).

现在,问题在于客户端示例代码对我不起作用,并且我在chrome的javascript控制台中收到以下错误:

"未捕获的ReferenceError:require未定义"引用socket.io.js中的这行代码:var client = require('socket.io-client');

这让我相信它无法识别需求命令周期,这似乎很奇怪.还有其他一些事情 - 我运行了apache,所以我将所有的socket.io文件移动到我的apache目录htdocs中,通过使用cygwin和指南安装的http端口80进行访问:https://github.com /joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)

socket.io文件也安装在我的c:驱动器的windows下的cygwin目录下,如果被apache访问它们就没用了.另一个小问题 - 我有一个socket.io-client.js文件,但当我打开它使用wordpad进行编辑时,它看起来已损坏,内部只有一行文字:<symlink>ÿþi

node.js socket.io

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

commonjs ×2

javascript ×2

node.js ×2

requirejs ×2

amd ×1

module ×1

reactjs ×1

socket.io ×1