Articles of node.js

CodeDeploy PM2命令未find

我正在尝试使用AWS CodeDeploy来部署我的应用程序。 一切似乎工作正常,但我得到以下错误。 [stderr] /opt/codedeploy-agent/deployment-root/f1ea67bd-97bo-08q1-b3g4-7b14becf91bf/d-WJL0QLF9H/deployment-archive/scripts/start_server.sh:line 3:pm2:command not found 下面是我的start_server.sh文件。 #!/bin/bash pm2 start ~/server.js -i 0 –name "admin" & 我已经尝试使用SSH连接到我的服务器作为用户Ubuntu和运行该Bash文件,它完美无误地工作。 所以我知道PM2已经安装并正常工作。 下面也是我的appspec.yml文件。 version: 0.0 os: linux files: – source: / destination: /home/ubuntu hooks: ApplicationStart: – location: scripts/start_server.sh timeout: 300 runas: ubuntu ApplicationStop: – location: scripts/stop_server.sh timeout: 300 runas: ubuntu 也不知道这是否会有所帮助,但这里是我的stop_server.sh文件。 #!/bin/bash npm install pm2 -g pm2 […]

无法在Linux中安装并运行我自己的npm模块

我创build了一个我打算发布的npm模块,但不是没有testing,它首先工作。 所以我安装了我正在使用的模块npm install -g . 而且它在我的Windows电脑上运行良好,但不能在我的Linux(Debian)电脑上运行。 相反,我得到以下错误: 15:52 $ transval : No such file or directory 到目前为止,当我比较Windows计算机上生成的cmd和bash文件时,我发现的唯一一件事情是,尽pipe(比较“gulp”)cmd文件在structre中是相同的,但是bash文件不是。 baseir设置的第二行不同。 这是我的模块发布的bash文件的完整输出: #!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") case `uname` in *CYGWIN*) basedir=`cygpath -w "$basedir"`;; esac if [ -x "$basedir/node" ]; then "$basedir/node" "$basedir/node_modules/transval/bin/transval.bin.js" "$@" ret=$? else node "$basedir/node_modules/transval/bin/transval.bin.js" "$@" ret=$? fi exit $ret 但是,如果我把前两行与任何其他文件进行比较,则有显着的区别! 这是来自任何其他模块的前两行,例如gulp: […]

Linux主机的build议

我即将开始一个新的项目,这将需要Linux的托pipe,所以我希望有一些build议。 完整的技术栈还没有完成,但它很可能具有:nodejs,ruby和某种forms的NoSql(couchDB / mongoDB)。 除了支持各种技术之外,托pipe也需要可扩展性。 而且,它可以做到尽可能便宜。 有什么build议么? 谢谢 伊恩

非阻塞服务通过UDP在端口上接收消息

我想在我的Linux VPS上构build一个服务,它监听某个UDP端口,并对捕获的(文本)消息进行处理。 这个处理包括将消息附加到本地存储的txt文件中,并将其作为http发送,并将postvariables发送到另一个服务器。 我已经看了Nginx,但是到目前为止,可以看到这个服务器只能绑定接收http数据包。 虽然它是asynchronous的。 在linux上实现这个监听服务的最好方法是什么? 哪些有能力做上述处理? 例如node.js是可能的吗? 看起来不错

在node.js中拖拽一个命名pipe道

我正在使用node-tail在linux中读取文件并将其发送到套接字。 node.js发送从文本文件读取的数据 var io = require('socket.io'); Tail = require('tail').Tail; tail = new Tail("/tmp/test.txt"); io.sockets.on('connection', function (socket) { tail.on("line", function(data) { socket.emit('Message', { test: data }); }); }); 接收方 var socket = io.connect(); socket.on('Message', function (data) { console.log(data.test); }); 这工作,但是当我尝试修改这部分 tail = new Tail("/tmp/test.txt"); 对此 tail = new Tail("/tmp/FIFOFILE"); 我无法从中获得任何数据。 有没有办法在Linux读取命名的pipe道? 或者可以读取命名pipe道的软件包?

背景上的Bash脚本:如何杀死subprocess

那么,我基本上试图让一个bash脚本永远运行一个节点脚本。 我做了下面的bash脚本: #!/斌/庆典 而真实的; 做 cd / myscope / 取消连接nohup.out 节点myscript.js 睡6 完成&echo $! > pid 我期待它运行时,它启动与给定的脚本节点,检查节点是否退出,如果睡眠6秒,如果重新打开节点。 另外,我期待它在后台运行,并将它的pid(bash pid)写在名为“pid”的文件中。 上面解释的所有东西都按预期工作,显然,但是我也期待在bash脚本的pid被杀的时候,节点脚本将会停止运行,我不知道为什么在我的脑海中有意义,但是当它去练习,这是行不通的。 bash脚本确实被杀死了,但是节点脚本一直在运行,这吓跑了我。 我已经在terminal上testing过了,不要把bash脚本发送到后台,然后进入ctrl + c,这两个脚本都会被终止。 我显然很想理解后台进程的工作方式。 为了上帝的缘故,任何人都可以帮助我吗?

用apt-get vs PPA安装Node – 有什么区别?

我没有任何问题,我只是好奇 – 使用apt-get install nodejs和使用Chris Lea PPA之间的区别是什么? Nginx似乎也使用apt-get install nginx安装完美,但安装说明build议使用PPA。 任何人都可以解释为什么我会采取额外的步骤来安装与PPA,而不是使用apt-get install _____一行?

无法在nodejs中执行git命令

我可以在我的VPS上成功执行git pull命令行,但是当我在Nodejs中用execFile执行一个包含“git pull”的bash文件时,它给了我一个错误: Command failed: Host key verification failed. 我怎么解决这个问题? 更新:我得到的整个错误消息是: { [Error: Command failed: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ] killed: false, code: 1, signal: null } 似乎这与提供的dylants问题不是同一个问题。 bash文件脚本是这样的,我用它来自动部署我的nodejs应用程序: git pull && pm2 reload www […]

为什么不在一个Amazon EC2实例上运行Node.js和Neo4j?

我即将在亚马逊build立一个服务器架构。 我并不熟悉最佳实践,而且随着我的进行,我学到了很多东西。 我的老板告诉我要用Node.js和Neo4j(Graph-Database)启动一个Amazon EC2实例,并运行在同一个实例上。 两者应使用不同数量的可用CPU。 随着应用程序变得越来越大,需要更多资源,我们将简单地克隆实例。 我的老板也没有这方面的经验。 我必须说我把Node.js和Neo4j放在一个实例/机器上感觉不好。 我以为我会使用亚马逊Linux HVM发行版,因为他们已经设置好了与他们的服务。 可悲的是,Neo4j并不是由yum支持的,而是非常适合的(亚马逊Linux基于Ubuntu,使用yum而不是apt)。 因此Neo4jbuild议使用Debian / Ubuntu来运行他们的数据库。 为什么把Node.js和Neo4j放在一个实例上不是个好主意? 我可以想象的一个原因是可扩展性不再像运行每个服务的两个单独实例那样dynamic。

在node.js中输出完整的错误对象

有几个地方使用错误对象,比如当你捕获错误时,或者在exec的情况下,错误对象可以被subprocess传回。 当你试图logging这些信息时,并不是所有的东西都能解决。 我已经尝试了以下内容: console.log(error); console.log(error.stack); console.log(util.inpect(error, true, null)); 所有这些选项似乎都会输出一组不完整的数据。 有没有一种方法可以确保我总是从显示的错误中获取所需的所有数据,或者是否需要使用这三行(是否还有更多的语句需要添加?)?