我在家中使用的Nas已从Synology的软件包中心安装了Node JS v12。因此,我认为创建Node JS http网络服务器并研究后端和前端开发会很酷。
创建volume1 / path_to_your_app / app.js,并让http服务器监听端口8080。接下来,使用Powershell,我可以从家里通过ip地址使用Synology(admin)帐户的[用户名]和[密码]登录到Nas。要在Synology的配置/终端中使用ssh访问,必须检查ssh服务。默认端口号是22,我将其更改为例如8822。接下来,从Powershell中,我现在可以运行命令:
现在可以从Synology的外壳中导航到该文件,运行该文件,然后在浏览器中的192.168.1.44:8080/上查看它。
接下来,我设置端口转发以在线托管Web服务器。在我的路由器中,设置/端口转发ipv4 /我的nas是在IP地址192.168.1.44下定义的。在Nas的应用程序配置中,我在端口8080的TCP协议下添加了一条新规则。该规则仅适用于端口8080(据我目前可以正常使用),因为这是一个实验端口。现在,我可以在路由器的WAN-IP:8080 /上访问Web服务器。退出Synology的外壳程序(ctrl + c)后,我的应用程序也停止运行。我无法从npm永久安装以保持服务器运行。但是从this page中我找到了解决方案。我必须从/ etc / init文件夹中的Synology外壳程序创建一个新贵文件。
sudo vi yourappname.conf
我将这段代码复制/粘贴到(.conf)文件中,然后将参数编辑到我的环境中:
#!upstart
description "your app name"
start on started mountall
stop on shutdown
# Automatically Respawn:
respawn
respawn limit 99 5
env NODE_ENV=development
# Warning: this runs node as root user, which is a security risk
# in many scenarios, but upstart-ing a process as a non-root user
# is outside the scope of this question
chdir /volume1/path_to_your_app/
exec node /volume1/path_to_your_app/app.js >> /var/log/yourappname.log 2>&1
现在,我可以从Synology的外壳程序手动启动和停止upstart脚本,即使我退出Synology的外壳程序,它也可以继续运行。我还在“ exec”之前的脚本中插入了“ chdir / path_to_your_app /”,因为它会将Node JS运行所在的目录更改为您的应用程序所在的目录。我不知道脚本中的警告会带来什么安全风险。
使用以下命令调试我的Node JS应用程序:
setuid http