【问题标题】:How to run server.js written in js with Node.js如何使用 Node.js 运行用 js 编写的 server.js
【发布时间】:2015-04-18 12:29:33
【问题描述】:

我有一个在互联网上找到的 nodejs 语言文件,我想运行它,但我不知道如何运行它。我尝试使用 cmd 命令运行:node server.js 但它不起作用。

文件server.js

var port = process.env.PORT || 3000;
server   = require('http').createServer(),
io       = require('socket.io').listen(server),

users = {}, socks = {};

function Uid() { this.id = ++Uid.lastid; }

Uid.lastid = 0;

//Handle users
io.sockets.on('connection', function (socket) {

	// Event received by new user
	socket.on('join', function (recv) {

		if (!recv.user) {
			socket.emit('custom_error', { message: 'User not found or invalid' });
			return;
		}

		// The user already exists
		if (users[recv.user]) {
			socket.emit('custom_error', { message: 'The user '+ recv.user +' already exists' });
			return;
		}

		// If there is users online, send the list of them
		if (Object.keys(users).length > 0)
			socket.emit('chat', JSON.stringify( { 'action': 'usrlist', 'user': users } ));

		// Set new uid
		uid = new Uid();
		socket.user = recv.user;

		// Add the new data user
		users[socket.user] = {'uid': Uid.lastid, 'user': socket.user, 'name': recv.name, 'status': 'online'}
		socks[socket.user] = {'socket': socket}

		// Send new user is connected to everyone
		socket.broadcast.emit('chat', JSON.stringify( {'action': 'newuser', 'user': users[socket.user]} ));
	});

	// Event received when user want change his status
	socket.on('user_status', function (recv) {
		users[socket.user].status = recv.status;
		socket.broadcast.emit('chat', JSON.stringify( {'action': 'user_status', 'user': users[socket.user]} ));
	});

	// Event received when user is typing
	socket.on('user_typing', function (recv) {
		var id  = socks[recv.user].socket.id;
		io.sockets.socket(id).emit('chat', JSON.stringify( {'action': 'user_typing', 'data': users[socket.user]} ));
	});

	// Event received when user send message to another
	socket.on('message', function (recv) {
		var id  = socks[recv.user].socket.id;
		var msg = {'msg': recv.msg, 'user': users[socket.user]};
		io.sockets.socket(id).emit('chat', JSON.stringify( {'action': 'message', 'data': msg} ));
	});

	// Event received when user has disconnected
	socket.on('disconnect', function () {
		socket.broadcast.emit('chat', JSON.stringify( {'action': 'disconnect', 'user': users[socket.user]} ));
		//socket.broadcast.emit('chat', JSON.stringify( {'action': 'offline', 'user': users[socket.user]} ));
		delete users[socket.user];
		delete socks[socket.user];
	});
});

//Listen to the server port
server.listen(port, function () {
  var addr = server.address();
  console.log('jquery-chat server listening and ready');
});

【问题讨论】:

  • 您有任何错误吗? “但它不起作用”是什么意思?
  • 是的,我收到一个错误:Cant not find module "socket.io" at...
  • 那么你没有安装 socket.io 模块。查看此链接以安装 socket.io socket.io/download

标签: javascript jquery node.js sockets


【解决方案1】:

要使用 NodeJS 执行 javascript,您必须从命令提示符/终端使用 node <filename> 命令。

您正在使用相对路径。将node server.js 更改为node "/full/path/to/server.js"

例如,如果 server.js 位于C:\myserver\server.js,则运行:

node "C:\myserver\server.js"

【讨论】:

  • 你试试看是什么意思?
  • 未找到“socket.io”。我还在学习nodejs,所以我不知道在哪里可以找到socket.io包
  • Socket.io 是一个可以使用 NPM(节点包管理器)安装的模块。看看这个链接,它会告诉你如何为节点安装 Socket.IO。 socket.io/download
【解决方案2】:

您需要安装socket.io。 在终端中运行:

npm install socket.io

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多