当前位置: 首页 > 面试题库 >

具有其他语言的外部部门的NodeJS API

薛栋
2023-03-14
问题内容

我正在开发NodeJSAPI,一切正常。

对于特定问题,我正在使用本地CLI依赖项,该依赖项会处理一些 输入 文件并 输出 其他内容,以防从API返回。

我想知道(也许让我敞开心I)可以在生产中为该API提供什么样的服务。

这个想法是要有一个Node环境(例如在我的本地环境中)可以在同一台机器上安装不一定要写入的外部依赖项Node

我的特定依赖项是fontforge和其他小东西。

提前致谢。


问题答案:

如果您需要安装使用npm不容易安装的自定义软件,那么很难击败一个好的VPS。我最喜欢的VPS提供商是DigitalOcean。您可以通过此链接免费使用两个月的基本服务器,以便在付款之前查看是否适合您。第二受欢迎的VPS提供商是Vultr,因为您可以在其服务器上安装自定义ISO。您可以通过此链接免费试用。但这将意味着您自己要照顾服务器。借助Heroku之类的服务,一切都会为您服务-
但您无法在此处安装任何内容。使用VPS,您可以获得具有root用户访问权限的服务器。通常它是Linux,但是DigitalOcean也支持FreeBSD,并且某些人安装了OpenBSD,尽管它并未得到官方支持。使用VPS,您可以安装任何所需的东西,但您必须自己做。总会有一个权衡。

安装节点

要在VPS上安装Node,我的建议是/opt使用版本化目录和符号链接进行安装-
这是我为不同答案编写的示例过程:

# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node

您的开始脚本

为了在服务器启动时很好地启动自己的应用程序-这是一个基于我正在使用的示例的Upstart脚本示例-它应在Ubuntu
14.04上运行,而不在较新版本上进行测试-将其保存在/etc/init/YOURAPP.conf

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [06]

# If the process quits unexpectadly trigger a respawn
respawn

# Start the process
exec start-stop-daemon --start --chuid node --make-pidfile --pidfile /www/YOURAPP/run/node-upstart.pid --exec /opt/node/bin/node -- /www/YOURAPP/app/app.js >> /www/YOURAPP/log/node-upstart.log 2>&1

只是改变:

  • YOURAPP 您自己的应用程序的名称
  • /opt/node/bin/node 通往 node
  • /www/YOURAPP/app/app.js 到您的Node应用程序的路径
  • /www/YOURAPP/run 到您想要PID文件的位置
  • /www/YOURAPP/log 到您想要的日志位置
  • --chuid node--chuid OTHERUSER,如果你希望它运行为不同的用户比node

(请确保使用--chuid上面的名称添加用户)

随着你/etc/init/YOURAPP.conf的地方,你可以安全地重新启动服务器,让你的应用程序仍在运行,可以运行:

start YOURAPP
restart YOURAPP
stop YOURAPP

以启动,重新启动和停止您的应用-系统启动或关闭时也会自动发生。



 类似资料:
  • Nacos社区当前仅提供了Java版本的客户端,我们将主要依靠社区的贡献来发展多语言客户端。在未来,我们将向Nacos社区用户推荐那些最被广泛使用的以及支持最好的客户端作为Nacos相应语言的官方版本。 go cpp python nodejs more ...

  • 目录 1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 3. 程序的调试 4. 第一个程序 2. 常量、变量和表达式 1. 继续Hello World 2. 常量 3. 变量 4. 赋值 5. 表达式 6. 字符类型与字符编码 3. 简单函数 1. 数学函数 2. 自定义函数 3. 形参和实参 4. 全局变量、局部变量和作用域 4. 分支语句 1. if语句 2. if/els

  • 问题内容: 我有dockerfile 然后我建立它 并运行它。 是否可以从命令行传递参数并将其与Dockerfile中的其他参数一起使用?我的意思是 并以此参数构建。 问题答案: 看起来可能不太干净,但是您可以按照以下方式使用Dockerfile: 然后将图像构建为: 要么

  • 当使用缺乏原生Pact支持的语言来写服务提供者时,你仍然可以使用通用的Pact提供者端验证工具来验证是否满足契约。 通用Pact提供者验证 下面的设置简化了任何语言的Pact提供者端的验证过程。 特性: 验证发布到Pact Broker的Pact文件 在开发环境验证供测试用的本地Pact*.json文件 安装有Ruby环境以及sane的预先配置的Docker镜像,缺省为src / Rakefile

  • 我已经和flutter一起工作了几个月了,似乎在一个应用程序中没有太多关于后端或高级功能的工作。我喜欢使用Flutter来帮助我设计UI,但我想使用另一种语言来帮助我做一些其他的事情。例如,我想要显示一个全屏的相机页面(几乎像Snapchat一样),或者像通过App直接向另一个用户发送一条消息。我需要别的语言来做这样的事情吗?我不是高级程序员。我只想创建能够处理和存储一点点东西的简单应用程序。

  • 我需要一个灵活的过滤器来过滤所有代码中的多个EventListener。我可以使用@EventListener(condition=“event.enabled”),但我的过滤器需要分析fooEvent的许多属性。 我希望我可以使用应用程序上下文中的谓词Bean: 但我得到: 是否可以为EventListerns使用外部复杂条件?或者至少定义具有复杂条件的全局侦听器,并在不重复完整条件的情况下继承