I'm attempting to start couchdb from node.js if it hasn't already been started. Code like the following works for basic commands like pwd but not for couchdb :
var sys = require('util') var exec = require('child_process').exec; var child; // executes `pwd` child = exec("pwd", function (error, stdout, stderr) { sys.print('stdout: ' + stdout); sys.print('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } });I've tried using ' couchdb ' & ' /usr/local/bin/couchdb ' as arguments to exec.
Problem courtesy of: james_womack
SolutionI have a working example now using CoffeeScript:
childproc = require "child_process" couchdb = childproc.spawn "couchdb" couchdb.stdout.setEncoding "utf8" buffer = "" couchdb.stdout.on "data", (data) -> lines = (buffer + data).split(/\r?\n/) buffer = lines.pop() lines.forEach (line, index) -> console.log line couchdb.stdout.on "end", -> if buffer.length > 0 console.log buffer buffer = "" console.log 'process ended'See my gist for a fuller example in CS, Iced CS & JS
EDITHere is the ouput in javascript:
var buffer, childproc, couchdb; childproc = require("child_process"); couchdb = childproc.spawn("couchdb"); couchdb.stdout.setEncoding("utf8"); buffer = ""; couchdb.stdout.on("data", function(data) { var lines; lines = (buffer + data).split(/\r?\n/); buffer = lines.pop(); return lines.forEach(function(line, index) { return console.log(line); }); }); couchdb.stdout.on("end", function() { if (buffer.length > 0) { console.log(buffer); buffer = ""; } return console.log('process ended'); });Solution courtesy of: james_womack
本文数据库(综合)相关术语:系统安全软件
转载请注明
本文标题:Starting couchdb from node.js via exec or spawn
本站链接:https://www.codesec.net/view/584849.html
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
本文标题:Starting couchdb from node.js via exec or spawn
本站链接:https://www.codesec.net/view/584849.html
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。