繁体   English   中英

在Azure VM(Windows Server 2012)上执行Node.js?

[英]Execute nodejs on azure vm (windows server 2012)?

我已经在Visual Studio中与Node.js建立了聊天功能,并且在我的本地主机上运行良好,但是在Azure上我的网站运行良好,所以我创建了虚拟机(Windows Server 2012)。(注意:这不是经典的虚拟机)并安装了必要的软件NodeJS 。并将我的nodejsapp文件夹复制到虚拟机中。

此处的代码段(server.js)...

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io').listen(http);
var sql = require('mssql');

var config = {
    user: 'xxxxx',
    password: 'xxxxxxxxxxx',
    server: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    database: 'xxxxx',

    options: {
        encrypt: true // Use this if you're on Windows Azure
    }
}
console.log(config); 


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

   socket.on('join room', function (data) {console.log('joined-->'+data.email);
        socket.join(data.email); 
    });

   socket.on('leave room', function (data) {console.log('Leaved-->'+data.email);
        socket.leave(data.email); 
    });

    socket.on('message', function (data) {
            console.log('sent==>'+data.id+"  , "+data.to+'  ,  '+data.from+'  ,  '+data.msg  );
            io.sockets.in(data.to).emit('chat message', {id: data.id, to:data.to,from: data.from, msg: data.msg });

    });    

});

http.listen(5556, function(){
  console.log('listening on *:5556');
});

之后,使用命令提示符尝试运行server.js,但不运行node。

在此处输入图片说明

它在本地计算机上工作,但在vm中不工作。

谁能指出我正确的方向?

似乎另一个程序在环境路径中具有node.exe。 在您的情况下,可能是Microsoft HPC Pack。 键入echo%PATH%并查看(C:\\ Program Files \\ Microsoft HPC Pack 2008 R2 \\ Bin)是否位于node.js文件夹(C:\\ Program Files \\ nodejs)之前。 如果是这样,请更改路径,使node.js路径位于HPC路径之前。

似乎您已使用HPC Pack计算节点模板来创建VM实例并构建您的应用程序。

在此处输入图片说明

通过默认,该node是此模板中HPC命令的别名。 如果您不小心安装一个Node.js环境,那么它就没有。 实际上,您可以使用node.js执行应用程序的绝对路径。

另外,您可以使用标准版本的VM模板,例如 在此处输入图片说明

安装node.js并确保在系统PATH配置nodejs文件夹的PATH 否则,您可以简单地将node.js执行应用程序的文件夹打包在项目目录中,然后将它们部署到Azure VM中。 然后使用node.js执行的绝对路径来运行您的node.js服务器。

更新

在市场中添加新资源时,可以选择不带HPC包的VM模板。 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM