У меня возникли трудности с настройкой client.js-клиента для подключения к сокету в java. браузер всегда дает мне эту ошибкуnode.js и обновить версию
Uncaught ReferenceError: require is not defined
и я использовал его в моем HTML-страницу
<script type="text/javascript">
$(function() {
// open websocket
var net = require('net');
var socket = net.connect(8000, 'localhost');
})
</script>
я установил Node.js с помощью git clone https://github.com/joyent/node.git
и browserify по sudo npm install -g browserify
. Я использовал sudo
, потому что он выдает permission error
, что я должен выполнить команду с уровнем администратора.
после установки browserify я все еще получаю ошибку в моем браузере
Uncaught ReferenceError: require is not defined
я понимаю мою ошибку i'am пытается импортировать nodejs в HTML, который не применим. Следующее, что я делаю это с browserify, когда я пытаюсь browserify index.js -o bundle.js это показывает эта ошибка
/usr/local/lib/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js:906
ret = Buffer.concat(list, length);
^
TypeError: Object function Buffer(subject, encoding, offset) {
if (!(this instanceof Buffer)) {
return new Buffer(subject, encoding, offset);
}
var type;
// Are we slicing?
if (typeof offset === 'number') {
this.length = coerce(encoding);
this.parent = subject;
this.offset = offset;
} else {
// Find the length
switch (type = typeof subject) {
case 'number':
this.length = coerce(subject);
break;
case 'string':
this.length = Buffer.byteLength(subject, encoding);
break;
case 'object': // Assume object is an array
this.length = coerce(subject.length);
break;
default:
throw new Error('First argument needs to be a number, ' +
'array or string.');
}
if (this.length > Buffer.poolSize) {
// Big buffer, just alloc one.
this.parent = new SlowBuffer(this.length);
this.offset = 0;
} else {
// Small buffer.
if (!pool || pool.length - pool.used < this.length) allocPool();
this.parent = pool;
this.offset = pool.used;
pool.used += this.length;
}
// Treat array-ish objects as a byte array.
if (isArrayIsh(subject)) {
for (var i = 0; i < this.length; i++) {
this.parent[i + this.offset] = subject[i];
}
} else if (type == 'string') {
// We are a string
this.length = this.write(subject, 0, encoding);
}
}
SlowBuffer.makeFastBuffer(this.parent, this, this.offset, this.length);
} has no method 'concat'
at fromList (/usr/local/lib/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js:906:20)
at Transform.read (/usr/local/lib/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js:373:11)
at flow (/usr/local/lib/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js:629:52)
at Array.0 (/usr/local/lib/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js:600:7)
at EventEmitter._tickCallback (node.js:190:38)
эта ошибка с browserify? пример моих nodejs
server.js
var http = require("http");
var url = require("url");
function start(route) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
router.js
function route(pathname) {
console.log("About to route a request for " + pathname);
}
exports.route = route;
index.js
var server = require("./server");
var router = require("./router");
server.start(router.route);
this моя ссылка.
Browserify не позволяет создавать сокеты, даже если вы действительно включаете его на свою страницу. – SLaks
Я имею в виду, что он говорит, что если я установил браузер, он позволит мне использовать функцию 'require' @SLaks –
Прочитайте документацию о том, как использовать Browserify, просто ее установка ничего не сделает. Вы должны создать пакет для включения в браузер. – elclanrs