Tag: linux

用Express框架提供图像

我正在尝试使用快速框架来提供.png,但不断收到“Can not / get”错误。 var express = require('express'), mongoose = require('mongoose'), fs = require('fs'), Schema = mongoose.Schema; app = express(), port = process.env.PORT || 3000; app.use('/public/media', express.static(__dirname + '/public/media/img0.png')); app.listen(port); console.log(__dirname + '/public/media/img0.png'); 我打印出我的文件的目录名,以确保我有正确的path。 深入研究develepor工具却显示由于404错误导致无法加载资源。 我的文件结构是这样的。 — admin — app.js public — media — img0.png img1.png 从我所看到的,我的静态文件服务器应该工作,所以我有点损失。 思考?

节点中的Linux系统variables

我在应用程序的启动脚本中有NODE_ENV=${NODE_ENV:-production} 。 这是什么意思:-production ? 另外为什么添加系统variables和阅读它返回undefined ? 为了缓解这个问题,即使printenv显示它,我总是必须使用NODE_ENV=production npm start

如何在Linux中打开端口?

我正在研究一个简单的Node.js应用程序。 这需要打开一个特定的端口。 例如,如果我想要应用程序侦听端口(比如说)5122,我将不得不先打开端口5122.为此,我在我的iptables中应用了以下规则 iptables -I INPUT 3 –proto tcp –dport 5122 -j ACCEPT service iptables save 最初这为我工作。 但突然之后,一些停止工作。 我现在想检查5122端口是否真的打开。 我发布了命令 nmap -sT -O localhost 我没有看到这里列出的任何这样的端口。 但 sudo iptables -L shows it like this – ACCEPT tcp — anywhere anywhere tcp dpt:5122 ACCEPT tcp — anywhere anywhere tcp dpt:5122 我看到这一行2次。 仍然困惑! 不知道。 我现在打开以下urlhttp://www.yougetsignal.com/tools/open-ports/,并input我的主机IP和端口,它说,端口5122closures50.56.246.162(这是我的主机IP) 我的问题是我如何永久保持一个特定的端口开放聆听。 任何帮助将不胜感激。

如何通过node.jsclosures与cassandra的连接

如何在node.js中closures与Cassandra的连接? 如果我没有closures连接,我会遇到一个错误。 错误是错误: All host(s) tried for query failed. First host tried, 10.XXXXX:OOO: Error: connect EMFILE 我已经在datastax中看到了解决scheme。 这表明它可以通过命令process.exit()来解决。 但它会杀死整个node.js进程。 那不是我想要的。 我只想closurescassandra连接而不是整个node.js进程。 有没有人有这个好的解决scheme?

npm将所有依赖关系和子依赖关系放在同一个文件夹中

我有一个package.json文件,在我的项目中有大约20个依赖项。 当我做 npm install 它将所有依赖关系和子依赖关系置于最顶层的node_modules目录中。 它包含数百个模块,当它只应该是我的20个。子依赖项应该在我的主依赖项下的node_module目录中,但是它已经创build了一个扁平的结构。 我在Ubuntu 14.04上使用npm 3.5.4和节点0.10.41 任何人都可以帮助我使用正确的树结构来安装模块吗? 编辑—–添加我的packages.json文件: { "name": "lms", "version": "1.0.0", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "license": "ISC", "dependencies": { "aliasify": "^1.8.0", "angular": "^1.4.7", "angular-animate": "^1.4.7", "angular-aria": "^1.4.7", "angular-material": "^0.11.4", "angular-resource": "^1.4.7", "angular-ui-router": "^0.2.15", "angular-ui-sortable": "^0.13.4", "backbone": "^1.2.3", "bootstrap": "^3.3.5", "browser-sync": […]

为什么需要明确指定端口80使用HTTPS访问我的网站?

我按照说明使我的nodejs服务器监听端口80。 https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps 我的服务器还没有域名。 问题是,如果我的服务器使用HTTPS ,我不能访问我的服务器没有指定端口80像这样https://xx.xxx.xxx.xx:80 。 但是,使用HTTP ,没有指定端口,我仍然可以使用IP访问我的网站。 我在这里做错了什么?

我的NPM项目将不会发布

我对Web开发很新,但是我正在尝试为一个项目开发一个非常小的RESTful Web应用程序; 我想我会尝试做正确的方式,所以我开始遵循一些教程等。 长话短说,当我试图发布时遇到了一个问题,我正在学习一个叫做how-to-npm的教程。 我不太明白这个错误信息,因为逻辑看起来有点落伍。 (它说它不能在registry中find这个名字,我认为这个名字是按照预期工作的,因为我仍然在试图发布它,但是我认为可能发生的是它不能发布我的项目,然后在代码中检查它是否已经发布,并且发现它确实没有被发布) 请在下面findnpm-debug.log数据 – 任何帮助表示赞赏。 (注意:test.js只是一个空文件) 0 info it worked if it ends with ok 1 verbose cli [ '/home/omar/.nvm/versions/node/v5.7.0/bin/node', 1 verbose cli '/home/omar/.nvm/versions/node/v5.7.0/bin/npm', 1 verbose cli 'publish' ] 2 info using npm@3.7.3 3 info using node@v5.7.0 4 verbose publish [ '.' ] 5 silly cache add args [ '.', null […]

执行Linux shell脚本时出错

我试图执行一个shell脚本来启动一个djtmlx实时更新框架中的nodejs服务器。 根据dhtmlx文档,nodejs服务器将被放入web根目录。 我写了一个位于/ var / www(nodejs文件夹所在位置)的batch file,这样服务器就可以启动,或者根据需要重新启动,而无需打开terminal: #!/bin/bash nodejs nodejs/server.js 从一个脚本有一个PHP脚本的Ajax调用: $("#starter").click(function(response){ var jqxhr = $.ajax( "./phpFunctions/nodeStarter.php" ) .done(function(response) { alert(response); }) .fail(function() { alert(response); }) }); 在nodeStarter.php中有以下内容: error_reporting(E_ERROR | E_WARNING | E_PARSE); $output = shell_exec("/var/www/nodeStart 2>&1; echo $?"); echo "<pre>$output</pre>"; unset $output; 和错误消息: 咦? 似乎是在Web文件夹中,而不是在我告诉它的Web根目录server.js。 我很困惑。

详细通过节点0.10.25安装jshint错误的JSON错误

我正在试图在Mint Linux系统上安装jshint,使用: sudo npm install -g jshint 我得到以下错误。 在这点之上,乱码错误信息填充我的terminal缓冲区。 # : b8 <f+) m r W^ Ä ?ՎZq Î > eV{ Y Р ? Hm *Zm `S I} o W@ W*w c b b )f z )/ M 6 o 7 ^& Sר + \ /6 n g[ m ~ ? WX G k { […]

节点脚本如何在我当前的bash上下文(进程)中运行?

在bash你可以source或. 在当前的上下文中运行一些bash脚本。 所以,如果你有例如文件foo与alias bar='echo bam'在其中,当你运行它像 $ . foo 它会从文件foo中将这个别名发送到当前的上下文中。 我知道,如果我通常使用#!/usr/bin/env node第一行来运行节点脚本,那么这个脚本在子shell中运行,或者作为单独的进程运行。 我想避免这一点,并使节点脚本作用于我当前的bash进程(上下文)。 我怎样才能运行节点脚本,改变我当前的bash上下文? ps:任何例子都不错。 节点脚本只能改变我的目录,但它也必须发生在我当前的bash上下文中。 ps2:小问题:如果在节点中是不可能的(我很难相信这个),或者它非常复杂,那么在其他语言中是可能的吗? 像PHP,Java,Ruby(我不问C,因为它很明显:)如果是这样,请给我一些例子。