我正在研究Node JS应用程序。
在此我必须检查第一个用户是否与互联网连接。如果是,则检查是否安装了KinectRuntime-v2.0_1409-Setup
..还有更多此类验证。所以我在我的输入脚本中使用了以下代码:
我做了什么:
broadcast.js ://我们用来启动应用的条目文件
var tempkinect = require('./controllers/tempkinect.js');
tempkinect.controller(app);
require('dns').lookup('google.com',function(err) {
if (err){
server.listen(8000, function(req, res){
open('http://localhost:8000/internetnotfound'); // internet not found page.
return false;
});
}
else{
try{
var Kinect2 = require("kinect2");
var kinect = new Kinect2();
}
catch(ex) {
server.listen(8000, function(req, res){
open('http://localhost:8000/kinectnotfound');
open('https://www.microsoft.com/en-in/download/confirmation.aspx?id=44559');
return false;
}
} //else ends here
});
tempkinect.js file://我的控制器文件
module.exports.controller = function(app){
app.get('/kinectnotfound',function(req,res){
var errmsg = "KinectRuntime-v2.0_1409-Setup not installed on your computer. Download will start automatically, if not then";
var link = "https://www.microsoft.com/en-in/download/confirmation.aspx?id=44559";
var click = "Click Here!"
res.render('initialerror',{errormessage:errmsg, downloadlink : link, clickhere: click, title : 'Kinect Not Found'});
});
app.get('/internetnotfound', function(req,res){
require('dns').lookup('google.com',function(err) {
if (err){
res.render('initialerror',{errormessage:'Please Connect Internet for Login.',downloadlink : '', clickhere : '', title : 'Internet Not Connected'});
}
else{
res.redirect('/restart');
}
});
});
app.get('/restart', function (req, res, next) {
process.exit(1);
});
}
我正在使用enclose
模块编译节点js应用程序并创建.exe
文件。现在,如果我使用命令提示符在本地计算机上运行应用程序:
运行> node broadcast.js
然后如果互联网未找到应用程序显示相应的页面。(然后我手动连接互联网)当我刷新页面后重新启动过程互联网,这是很好的按照要求。
但是,当我使用编译的应用程序执行相同操作时,它会给我错误:
我收到了什么错误:
除此之外,Forever应该作为全局安装在系统上,因此它在我的系统上工作正常,但在其他人的编译应用程序上没有。
答案 0 :(得分:0)
看起来你已经在端口8000上运行了某些东西(可能是你应用的其他副本)。我会确保您的应用程序端口可以通过环境变量或命令行选项进行配置。同样确保它可以正常关闭以释放端口。
至于永远,没有理由全局安装它,将它与应用程序打包在一起,然后在./node_modules/.bin
上提供它。