Articles of 包pipe理器

node.js中的额外stdiostream是否被child_process.spawn阻塞?

当使用spawn()创buildsubprocess时,您可以通过options.stdioparameter passing选项来创build多个stream。 在标准3(stdin,stdout,stderr)之后,你可以传递额外的stream和pipe道,这将是subprocess中的文件描述符。 然后你可以使用fs.createRead / WriteStream来访问这些。 请参阅http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options var opts = { stdio: [process.stdin, process.stdout, process.stderr, 'pipe'] }; var child = child_process.spawn('node', ['./child.js'], opts); 但是这些文件并不清楚这些pipe道堵塞的位置。 我知道标准input/标准输出/标准错误阻塞,但'pipe'呢? 一方面他们说: “请注意,父级和子级上的send()方法是同步的 – 不build议发送大块数据(可以使用pipe道,请参见child_process.spawn” 但在别处他们说: process.stderr和process.stdout不同于Node中的其他stream,写入它们通常是阻塞的。 They are blocking in the case that they refer to regular files or TTY file descriptors. In the case they refer to pipes: They […]

在Node.js中,数据何时存储在堆上?

在C中,你明确地要求和pipe理堆上的内存,所以与堆的交互是明确的。 你如何在Node.js中对此进行推理? 子问题: 在哪里/如何存储function? 是否有某些对象/原语总是存储在堆上? (如缓冲区) 数据是从堆栈迁移到堆的吗? 什么时候? 关于这个问题的良好资源的参考也将不胜感激,谢谢。

为什么npm试图在错误的目录中findpackage.json?

我有一个Web应用程序与TypeScript,Angular和几个依赖项。 npm当然也在这里。 package.json是从npm init的乞求中引入到项目中的,现在看起来像这样: { "name": "myApp", "version": "0.0.8-d", "description": "Web App", "author": "Author", "license": "ISC", "repository": { "type": "git", "url": "MYURL" }, "bugs": { "url": "MYURL" }, "homepage": "MYURL", "browserify": { "transform": [ "debowerify" ] }, "dependencies": { "malihu-custom-scrollbar-plugin": "^3.1.3" }, "devDependencies": { "browserify": "~13.0.0", "connect-history-api-fallback": "^1.2.0", "connect-modrewrite": "^0.8.2", "debowerify": "~1.2.0", "gulp": "^3.9.1", "gulp-autoprefixer": […]

Node.js – 模块caching,部分完​​成的对象和循环依赖?

在关于模块caching的node.js文档中 ,做了以下说明: 多次调用require('foo')可能不会导致模块代码被多次执行。 这是一个重要的function。 有了它,“ 部分完成 ”的对象可以被返回,从而允许传递依赖被加载,即使它们会导致循环。 我对最后一句话有些困惑。 什么是“部分完成”的对象? 这与如何允许(或避免)周期性依赖关系有关?

node.js上的依赖关系版本冲突

我是新来的node.js世界,我问我如何处理依赖关系版本冲突(这往往出现与传递依赖):在互联网上发现只有这篇文章对我有用http://nodejs.org/api/ modules.html#modules_addenda_package_manager_tips 。 所以看来,我不必担心冲突,因为在node.js中如何pipe理包。 我错了吗,我错过了什么? 这似乎很奇怪(但仍然是有道理的)对我来说,我习惯于处理maven的依赖关系,设置不必下载的传递依赖关系。 任何帮助表示赞赏,谢谢。

节点JS应用程序托pipe

我对Node JS比较新,我已经构build了三个我想要托pipe的小应用程序。 有没有人可以提供一个很好的起点来学习如何将应用程序部署到可用的许多服务之一? 到目前为止,我很惊讶缺乏提供这项服务的公司的支持,以及我遇到的大量问题,所以如果有人有任何提示,请帮助。

node.js native addon – 包装类的析构函数不运行

我正在用C ++编写node.js插件。 我使用node :: ObjectWrap封装了一些类实例,将本地实​​例与一个javascript对象关联起来。 我的问题是,包装的实例的析构函数从不运行。 这里是一个例子: point.cc #include <node.h> #include <v8.h> #include <iostream> using namespace v8; using namespace node; class Point :ObjectWrap { protected: int x; int y; public: Point(int x, int y) :x(x), y(y) { std::cout << "point constructs" << std::endl; } ~Point() { std::cout << "point destructs" << std::endl; } static Handle<Value> […]

承载node.js

有没有任何PAAS提供商,一个小型,高效,非盈利的node.js应用程序可以托pipe10Euro /月。 no.de:仅用于开发,没有关于可用性的预测 heroku:当配额不够时,会变得血腥昂贵

Node / npm:如何pipe理全局安装的devDependencies

我正在构build一个应该全局安装的devDependencies的Node模块,比如jasmine-node和jshint。 我基本上需要的是能够在我的makefile / npm脚本部分中引用它们的二进制文件来运行testing,lint等。换句话说,我不希望以编程方式要求()它们。 经过挖掘,我仍然对如何处理这个问题感到困惑: 1)我的第一个方法是假设这些模块将全局安装,在我的模块的文档中澄清这一点,并将它们的二进制文件引用为全局variables – 即期望它们在全局范围内可用。 这与这个build议相冲突 确保避免引用全局安装的二进制文件。 而是将其指向本地node_modules,它将二进制文件安装在隐藏的.bin目录中。 确保模块(在本例中为“mocha”)位于devDependencies下的package.json中,以便在运行npm install时将二进制文件放在那里。 (取自这个职位 ) 这一般听起来是正确的,因为上述设置相当脆弱。 2)我的下一个方法是明确地将这些模块包含在devDependencies中(虽然它们仍然全局安装在我的系统上(也很可能在用户&贡献者的系统上))。 这可以确保在需要的时候可以使用适当版本的二进制文件,现在我可以通过node_modules/.bin/引用它们。 但是我现在和这个build议是冲突的 如果你打算要求()它在本地安装。 (取自npm文件 ) 无论如何,我注意到npm install现在实际上对全局安装的模块没有任何提示 (不显示networking活动)。 我的问题: 全局安装的模块(在devDependencies中提到)的本地版本只是在npm install期间拍摄的全局模块的快照(副本)? 2)正确的方法去做这件事? 还是有一些其他的做法我错过了?

如何链接写入stream,立即与读取stream在Node.js 0.10?

以下行将从指定的urlvariables下载一个图像文件: var filename = path.join(__dirname, url.replace(/^.*[\\\/]/, '')); request(url).pipe(fs.createWriteStream(filename)); 这些行将会把这个图像保存到MongoDB GridFS中: var gfs = Grid(mongoose.connection.db, mongoose.mongo); var writestream = gfs.createWriteStream({ filename: filename }); fs.createReadStream(filename).pipe(writestream); 像这样链接pipe抛出错误:500不能pipe。 不可pipe道。 request(url).pipe(fs.createWriteStream(filename)).pipe(writestream); 发生这种情况是因为图像文件尚未准备好被读取,对吗? 我应该怎么做才能解决这个问题?错误:500不能pipe道。 不可pipe道。 使用以下内容: Node.js 0.10.10 , mongoose , request和gridfs-stream库。