标签: joyent

验证我的node.js实例是dev还是production

现在,每当我想将node.js服务器部署到我的生产服务器时,我需要更改我的数据库和外部API的各种连接的所有IP/DNS /用户名/密码.

这个过程很烦人,有没有办法验证当前运行的node.js实例是在cloud9ide还是实际上我的生产中的智能机器?

如果我能够在我的运行代码中运行我的node.js实例运行的服务器,我将添加一个条件,将值设置为prod或dev.

谢谢

javascript node.js express cloud9-ide joyent

53
推荐指数
4
解决办法
4万
查看次数

部署Node.js Web应用程序时要查看哪些最重要的统计信息?

首先 - 关于我的背景:我已经编程了一段时间(此时为10年),并且在编写想法时非常称职.我在一年多前开始从事网络应用程序编程工作,幸好发现了nodeJS,它使网络应用程序的创建感觉更像传统的编程.现在,我有一个node.js应用程序,我已经开发了一段时间,现在正在网络上生产.我的主要困惑源于这样一个事实,即我对Web开发世界很陌生,并且在监控我的应用程序时并不知道什么是重要的,什么是不重要的.

我正在使用Joyent SmartMachine,看看他们提供的分析选项有点压倒性.有很多不同的选项和配置,我不知道每个分析真正起作用的目的.对于下面的问题,我会感谢任何答案,无论是针对Joyent的云分析还是完全一般的.


问题一

现在,我主要关心的是弄清楚我的应用程序如何利用我运行的服务器.我想知道我的应用程序是否分配了适当数量的资源.它收到的请求数量是否会使服务器过度使用,还是需要额外的资源?为此目的,为NodeJS应用程序查看哪些分析非常重要?(如果有不同的话,在单独的服务器上使用MongoDB和Redis)


问题二

在管理正在生产的服务器时,还有哪些其他统计数据通常非常重要?我习惯于运行一次以执行特定操作的程序(例如,一旦计算出图像就完成运行的光线跟踪器),而不是连续运行并与许多客户端交互的web应用程序.我确信有很多事情对长期服务器管理员来说是显而易见的,而不是像我这样的新手.


问题三

在具体处理NodeJS时要注意什么?在处理NodeJS的单线程事件循环与更标准的服务器系统时,哪些统计/分析变得特别重要?

我还有其他关于数据库如何发挥作用的问题,但我认为这已经足够了...

monitoring analytics v8 node.js joyent

20
推荐指数
2
解决办法
1762
查看次数

php中的UTF-8问题:var_export()返回\ 0 null字符,而ucfirst(),strtoupper()等表现得很奇怪

我们正在处理一个以前从未发生过的Joyent Solaris服务器中的奇怪错误(不会发生在localhost或其他两个具有相同php配置的Solaris服务器上).实际上,我不确定我们是否必须查看php或solaris,以及它是否是软件或硬件问题......

我只是想发布这个,以防有人指出我们正确的方向.

所以,问题似乎是在var_export()处理奇怪的角色时.在CLI中执行此操作,我们在localhost机器和两个服务器中获得预期结果,但不在第三个服务器中获得.所有这些都配置为使用utf-8.

$ php -r "echo var_export('ñu', true);"
Run Code Online (Sandbox Code Playgroud)

在旧服务器和localhost (预期)中给出:

'ñu'
Run Code Online (Sandbox Code Playgroud)

但是在服务器中我们遇到了问题(PHP版本=> 5.3.6),\0每当遇到"不常见"的字符时它会添加空字符:è,á,ç,......你给它命名.

'' . "\0" . '' . "\0" . 'u'
Run Code Online (Sandbox Code Playgroud)

关于应该在哪里看的任何想法?提前致谢.


更多信息:

  • PHP version 5.3.6.
  • setlocale() 没有解决任何问题.
  • default_charsetUTF-8php.ini.
  • mbstring.internal_encoding被设置为UTF-8php.ini.
  • mbstring.func_overload = 0.
  • 这在CLI(示例)和Web应用程序(php-fpm + nginx)中都会发生.
  • iconv 编码也是 UTF-8
  • 所有文件utf-8编码.

system('locale') 收益:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

到目前为止完成的一些测试(CLI):

正常行为:

$ php …
Run Code Online (Sandbox Code Playgroud)

php localization utf-8 joyent

9
推荐指数
2
解决办法
2588
查看次数

运行Ghost博客作为在节点http-server上运行的网站的子文件夹

首先,请原谅我对Joyent的智能机器实例缺乏了解.我正在为这种情况运行NodeJS的免费开发层smartmachine实例.

我正在[path]/server/public/通过http-server在文件系统上运行一个网站,我想在端口80上同时运行一个Ghost博客[path]/server/public/blog/.

这可能吗?我怎么做到这一点?

node.js joyent smartos ghost-blog

8
推荐指数
1
解决办法
1707
查看次数

NodeJS Cluster意外断言.AssertionError

我面临一个奇怪的错误,这是我的主要.js文件

var cluster = require('cluster'),
  express = require('express'),
  http = require('http');

if (cluster.isMaster) {
    var cpuCount = require('os').cpus().length;
    for (var i = 0; i < cpuCount; i += 1) {
      cluster.fork();
    }
} else {
  var app = express(),
  server = http.createServer(app),
  io = require('socket.io').listen(server);
  io.set('log level', 2);
  server.listen(3000);
}

cluster.on('exit', function (worker) {
    console.log('Worker ' + worker.id + ' died :(');
    cluster.fork();
});
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误消息..

Worker 1 died :(
Worker 2 died :(

assert.js:92
  throw new assert.AssertionError({
        ^
AssertionError: false …
Run Code Online (Sandbox Code Playgroud)

javascript node.js joyent

6
推荐指数
1
解决办法
2417
查看次数

如何使用native node.js驱动程序将用户名/密码连接到mongodb

我在Joyent云中使用本机mongo驱动程序,node.js应用程序在本地运行正常但在Joyent中,当我使用usrname/pswd运行它们提供它无法连接时.以下是用于连接的代码:

var db = new MongoDB(dbName, new Server('localhost', 27017 , {auto_reconnect: true}), {w: 1});
db.open(function(e, db){
if (e) {
    console.log(e);
} else{
    console.log('connected to database :: ' + dbName);
    //db.admin().authenticate('admin', '+(uihghjk', function(de , db){
    // if(e){
    //     console.log("could not authenticate");
    // }else {
    //console.log('connected to database :: ' + dbName);
    // }
    // });
}
});
Run Code Online (Sandbox Code Playgroud)

有没有人在Joyent中使用本机node.js驱动程序.

谢谢

node.js joyent node-mongodb-native

5
推荐指数
3
解决办法
2万
查看次数

npm似乎忽略了我的私有模块和针对公共注册表的404

也许以前有人见过...我有一个私有模块要包含在我的应用程序中。我已将其作为Gemfury上的tarball引用,并且在库的多个版本上都可以在本地正常工作(始终如此),但是Joyent框上的“ npm install”会输出以下错误。

NPM似乎已成功拉下模块,然后尝试(失败)在注册表中查找它。

我认为我在做一些愚蠢的事情。有什么想法吗?

注意:

我也尝试通过package.json中的git URL引用模块。SSH似乎可以连接,因为它询问我是否信任github.com的IP和RSA指纹,但随后NPM再次击中注册表并得到404。我猜测这与软件包有关,但是可以吗? t在本地复制。

npm http GET https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz
npm http 200 https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz
npm http GET https://registry.npmjs.org/cake-lib/0.0.10
npm http 404 https://registry.npmjs.org/cake-lib/0.0.10
npm ERR! 404 'cake-lib' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.
npm ERR! System SunOS 5.11
npm ERR! command "/opt/nodejs/v0.10.21/bin/node" …
Run Code Online (Sandbox Code Playgroud)

node.js npm joyent

5
推荐指数
1
解决办法
1263
查看次数

使用MDB调查NodeJS内存泄漏,umem未加载到地址空间中

我有一个在CentOS上运行的nodejs进程.我正在关注这个以及来自Joyent的这个 turotials,以利用MDB来调查潜在的内存泄漏.

我生成了核心文件并上传到曼塔.因此我开始使用mlogin和MDB.

在MDB中,我执行::findleaks并产生此错误

> ::dmods
libumem.so
mdb
mdb_kb
mdb_kproc
mdb_kvm
mdb_proc
mdb_raw
v8
> ::findleaks
mdb: findleaks: umem is not loaded in the address space
Run Code Online (Sandbox Code Playgroud)

除了CentOS之外,在其他操作系统上运行我的nodejs进程是不可能的.

错误是否意味着核心转储中缺少某些信息?如何解决?

node.js joyent

1
推荐指数
1
解决办法
322
查看次数

Joyent SmartOS:安装NPM软件包

所以我正在尝试使用Joyent smartOS托管节点应用程序.创建我的实例后,我git复制了我当前的提交并尝试运行npm install.唯一的问题是这个过程会在失败的过程中得到一点点.

筛选日志,这似乎与我最相关:

ERR!stack  Error: not found: make
Run Code Online (Sandbox Code Playgroud)

我运行了它失败的软件包npm install jquery,我收到了同样的失败错误.

Joyent的基于节点的smartOS没有make关键字吗?有没有办法解决?

javascript node.js npm joyent

0
推荐指数
1
解决办法
637
查看次数