Tag: bash

为什么在MongoDB中发现UserNotFound错误?

我想能够访问mongodb://admin:password@db:27017/testdb ,但我不断收到 Command: ./node_modules/east/bin/east migrate –adapter east-mongo –url mongodb://admin:password@db/testdb [conn7] SCRAM-SHA-1 authentication failed for admin on testdb from client 172.17.2.60 ; UserNotFound Could not find user admin@testdb db是主机名。 这是我所做的: mongod –storageEngine wiredTiger –httpinterface –rest –master –auth & mongo admin –eval "db.createUser({user: 'admin', pwd: 'password', roles:[{role:'root',db:'admin'}]});" 如果我做 mongo admin -u admin -p password –host db –port […]

如何在NodeJS脚本中加载自定义的bash别名?

我有bash脚本 #!/bin/bash shopt -s expand_aliases . my_custom_aliases # load aliases alias foo # show alias definition foo # run alias 而且它正在按我的要求工作 $ ./alias.sh alias foo='echo barrr' barrr 但现在我想在nodejs脚本中做同样的事情。 我已经用ShellJS包来尝试这样的事情了 #! /usr/bin/env node var shell = require("shelljs"); shell.exec('shopt -s expand_aliases', {shell: '/bin/bash'}); shell.exec('. my_custom_aliases', {shell: '/bin/bash'}); shell.exec('alias foo', {shell: '/bin/bash'}); shell.exec('foo', {shell: '/bin/bash'}); ( my_custom_aliases显然是在同一个目录中) 但是这只是扔在我这个 […]

subprocessNode.js中的stdout和stderr列大小

我想监视来自Node中subprocess的实时数据。 我可以做到这一点没有问题,下面的代码片段。 var fs = require('fs'); var spawn = require('child_process').spawn; (function(){ "use strict"; var processMonitor, processListen, processDeauth; var parseStreamDataIn = function(data) { var str = data.toString('utf8'); console.log(str); }; var init = function() { processMonitor = spawn('trafficmon' , ['-w'], {'shell': '/bin/bash'}); processMonitor.stdout.on('data', function (data) { //trafficmon uses stderr, nothing needed here… }); processMonitor.stderr.on('data', parseStreamDataIn); processMonitor.on('close', function […]

使用.bash_profile和“postinstall”脚本避免NPM全局安装

NPM的理念,无论好坏,都是为了在本地安装一个项目的所有必要的依赖项,在./node_modules和package.json中反映所有必要的代码。 我有一个图书馆,这通常会受益于全球安装和本地安装,类似于Gulp,Mocha等。 以上最棘手的问题之一是,全球和本地版本可能会有所不同,导致给定项目的兼容性问题。 我想我们可以通过在.bash_profile创build一个别名来避免这个问题,例如: # bash psuedocode * alias gulp='using current working directory, find the locally installed gulp and run that' 我的图书馆不是咕嘟咕嘟,但你明白了。 我知道很多开发者不喜欢第三方写给他们的bash_profiles的想法,但是我认为这有点肛门保留,考虑到做这样的事情没有外部效应(TMK)。 所以我有三个问题: (1)这是个好主意吗? (2)有没有什么项目可以做类似的事情? (3)我对bash脚本不是很了解,你如何编写一个bash脚本来recursion查找node_modules / .bin / gulp,如果你的开发者从项目内的目录运行gulp命令,而不是在根目录? 我的想法是,作为后安装脚本 npm install –save-dev gulp 我们将运行一个脚本 将上面的行*添加到.bash_profile 在这一行中,我们将指向存储在/Users/you/.gulp下的脚本,该脚本将负责定位本地安装的吞咽。 这样,我们可以节省模块的全局安装需求,只用于命令行的方便,同时也减轻了不同软件包版本的问题。

npm脚本使用进程replace命令失败

在我的标准OSXterminal上运行以下操作按预期工作: $ diff <(ls dir1) <(ls dir2) correct output here 但是,当我尝试运行它作为一个NPM脚本,它失败: $ npm run diff sh: -c: line 0: syntax error near unexpected token `(' sh: -c: line 0: `diff <(ls src) <(ls dist)' 当我将NPM脚本更改为"bash -c 'diff <(ls dir1) <(ls dir2)'"它首先输出所需的结果,然后抛出一个错误(退出状态1)。 编辑:这些怪异的<()符号是过程replace的方式。 刚刚了解了他们。

NPM – 脚本 – 它们是如何工作的?

我无法理解脚本如何在package.json中运行,并希望对我们的新手有所了解。 这是否是由加载了各种dependencies节点运行的bash脚本? 如果是的话,那么它是如何处理JavaScript代码?

docker在尝试连接到mongodb时出错

我想做简单的宁静的API。 我正在使用docker来做到这一点。 这是我的Dockerfile : FROM mongo:3.2 EXPOSE 3000 RUN apt-get update; apt-get install curl -y RUN curl -sL https://deb.nodesource.com/setup_6.x | bash – RUN apt-get install -y nodejs ADD . . CMD node app.js 我docker-compose.yml如下所示: version: '2' services: db: build: ../images/mongodb ports: – "27017:27017" – "3000:3000" 我的app.js文件如下所示: var express = require('express') var app = express() var […]

更新部署到Heroku的Meteor应用程序的Node版本

我有一个Meteor应用程序部署到Heroku。 为了防止拒绝服务(DoS)漏洞,Herokubuild议更新我的应用程序的Node.js版本。 我想在Heroku上将meteor版本更新到1.2.1,节点版本更新到4.8.4。 我已经在packages.json设置了节点版本,但是在部署之后没有更新。 如何更新Heroku上的meteor和节点? 我尝试了下面的命令: heroku run meteor update –release 1.2.1 -a myappname 但它会引发以下错误: bash: meteor: command not found 任何帮助将非常感激。 提前致谢!

NodeJS – 如何写一个文件的所有console.log?

在我的CentOS 7.x服务器上,我正在运行Node(v6.7.0和v0.10.36)。 forever start /home/www/html/server/mynode.js 其运行如下: /usr/bin/node /home/www/html/server/mynode.js mynode.js的代码: var http = require('http'); var net = require('net'); var url = require('url'); var io = require('socket.io').listen(3004); io.set('log level', 1); io.sockets.on('connection', function (socket) { socket.on('disconnect', function () { try{ console.log(JSON.stringify(db)); } catch(dis) { console.log(dis); } }); }); 我如何告诉NodeJS或Linux保持日志? 所以我可以听tail -f /var/log/mynode.log什么?

Node.js产卵和`*`select多个文件

如果我创build一个test目录并将foo.js放入其中,那么我可以运行 node test/* 运行目录中的所有文件就好了。 但是,如果在父目录中创build一个js文件,并做到这一点 spawn('node', ['test/*']); 那么它给了我stderr输出 错误:找不到模块'/ mypath / test / *' 我已经意识到,这是因为*是由shell提供的便利(右?)。 所以,我的问题是: 有没有办法做我想要的spawn而不使用fs来读取test目录的内容? shell如何翻译test/* ,是否有可能从我的应用程序中获取这种超棒的力量?