如何在不使用终端命令的情况下运行节点js应用程序

问题描述 投票:0回答:3

我在node.js中非常陌生,我有一个简单的node.js项目,其中只有一个使用模块的js文件(vpn.js)和使用vpn.js中的函数打开的index.html。我已经安装了此软件包,require函数可以找到其模块。我有一个vpn.js文件和一个index.html(在index.html中,我只有一个带src的视频标记。)。现在我的问题是我应该始终在终端上运行代码吗?我应该如何主持这个项目?基本上没有客户端可以在Web上运行终端命令。 (注意:我使用Windows而不是Linux)这是我的js文件的代码:

const openvpnmanager = require('node-openvpn');

const opts = {
  host: '192.168.1.7', // normally '127.0.0.1', will default to if undefined
  port: 8080, //port openvpn management console
  timeout: 1500, //timeout for connection - optional, will default to 1500ms if undefined
  logpath: 'log.txt' //optional write openvpn console output to file, can be relative path or absolute
};
const auth = {
  user: 'vpnUserName',
  pass: 'vpnPassword',
};
const openvpn = openvpnmanager.connect(opts)

// will be emited on successful interfacing with openvpn instance
openvpn.on('connected', () => {
  //openvpnmanager.authorize(auth);  
  var http = require('http');
  var fs = require('fs');
  http.createServer(function (req, res) {
    fs.readFile('index.html', function(err, data) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.write(data);
      return res.end();
    });
  }).listen(5500);
});

// emits console output of openvpn instance as a string
openvpn.on('console-output', output => {
  console.log(output);

});

// emits console output of openvpn state as a array
openvpn.on('state-change', state => {
  console.log(state)
});

// emits console output of openvpn state as a string
openvpn.on('error', error => {
  console.log(error)
});
javascript html node.js
3个回答
1
投票

您可以完成设置永久运行节点服务器的帮助。这是一些步骤

您可能还想考虑使用upstart实用程序。它将允许您像服务一样启动,停止和重新启动节点应用程序。 Upstart可以配置为在应用程序崩溃时自动重新启动。

安装新贵:

sudo apt-get install upstart

为您的应用程序创建一个简单的脚本,看起来像:

#!upstart
description "my app"

start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

env NODE_ENV=production

exec node /somepath/myapp/app.js >> /var/log/myapp.log 2>&1

然后将脚本文件(myapp.conf)复制到/ etc / init,并确保将其标记为可执行文件。然后可以使用以下命令来管理您的应用程序:

sudo start myapp
sudo stop myapp
sudo restart myapp

0
投票

您应该搜索像DigitalOcean这样的主机,或者我在Nitrado上,我拥有自己的VPS,因此我可以使用PuTTy访问命令行。

[找到主机后,您使用PuTTy登录到服务器,然后您需要转移项目,或者只安装node.js并复制粘贴项目(如果项目不多。(您可以使用以Filezilla为例),然后安装一些过程管理器,例如pm2npm i -g pm2

安装后,您进入项目的根文件夹并使用]运行应用程序>

pm2 start npm --name myApp -- start

您的应用现在将运行24/7。您可以使用pm2 stop myApp停止它,或者重新启动或重新启动它


0
投票

使用pkg

© www.soinside.com 2019 - 2024. All rights reserved.