Articles of node.js

通过PHP执行的batch file运行所有命令作为后台进程

我有一个batch file的问题,并通过PHP执行它。 我们有一些节点服务器和Avaya CMS在具有受限访问的服务器上运行。 服务器需要每天重新启动,因为它们有时会崩溃,所以我创build了一个batch file来closures所有的cmd窗口,节点和通讯。 然后打开所有的节点服务器和avaya,启动一个login到avaya的AHK脚本,最后启动一些avaya报告。 当我双击batch file,或者如果我通过任务计划程序运行它时,这一切都运行良好,但是现在我们希望能够通过点击PHP页面上的button来运行它。 这是我遇到麻烦的地方。 从我所看到的,当我点击button时,batch file运行,closures所有的节点服务器,就这样,或者我想,首先。 通过一些挖掘,我发现它实际上是执行整个batch file,但是它运行所有cmd窗口和avaya作为后台进程,我认为这是我的问题所在。 AFAIK从PHP执行batch file没有办法让它打开cmd,但我认为batch file本身会在前台运行cmd窗口和avaya。 有没有办法做到这一点? 代码如下,以防万一需要。 PHP $test = escapeshellcmd('C:\Windows\System32\cmd.exe /k "C:\wamp\www\batch_files\R – Wallboards Script"'); system($test); batch file title Launching Servers… echo Kill Avaya @echo off taskkill /f /im "acsCNTRL.exe" /T taskkill /f /im "acsApp.exe" /T taskkill /f /im "wscript.exe" /T taskkill […]

Node.js – 在Windows上运行包时无法读取null的属性'toString'

我正在使用node.js上的hercule和hercule包来转换一些纯文本文件。 在Unix上,一切似乎都很好。 但是,有些同事在Windows上运行时遇到问题。 只有在Windows上运行时才会收到以下错误消息: [13:02:01] TypeError: Cannot read property 'toString' of null at Object.transcludeStringSync (D:\project\node_modules\hercule\lib\hercule.js:136:36) 我已经用hercule@3.0.5以及hercule@2.0.5尝试上面的hercule@2.0.5 ,并且这两个包都给出了上面的错误。 但是,鉴于这只发生在Windows上,并在许多版本的软件包,我怀疑这个问题有什么应该由于Node.js安装或path 。 使用hercule包的代码: var fs = require('fs'); var path = require('path'); var gulp = require('gulp'); var drakov = require('drakov'); var hercule = require('hercule'); gulp.task('mock', ['i18n','build_minify_no_tests'], function() { var mockSpecificationTemplate= fs.readFileSync('test/mock/mock-template.apib','utf8'); var transcludedMockSpecification = hercule.transcludeStringSync(mockSpecificationTemplate, { relativePath: path.resolve('../../../') }); […]

我怎样才能创build一个“wscript”文件,用一组cxxflags编译ac文件,以及用不同的cxxflags组成的cpp

我试图编译一个NodeJS本地模块,使用两个文件:1 .c文件和1 .cpp文件。 这是我的'wscript'文件的样子: def set_options(opt): opt.tool_options("compiler_cxx") def configure(conf): conf.check_tool("compiler_cxx") conf.check_tool("node_addon") def build(bld): obj = bld.new_task_gen("cxx") obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall", "-x", "objective-c"] obj.source = "c-file.c" obj = bld.new_task_gen("cxx", "shlib", "node_addon") obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall"] obj.target = "binding" obj.source = "cpp-file.cc" 这生成了一个binding.node文件,我可以在Node中部分使用,但只要我调用位于C文件中的函数(在上面的wscript中首先编译的文件),Node就会崩溃,如下所示: dyld: lazy symbol binding failed: Symbol not found: __Z9getSomethingv Referenced […]

是否有一个nodemon等效于windows

所以Nodejs现在可以用于Windows,但有没有一种服务,像在Windows上工作的nodemon协助开发?

简单的RequireJS节点

我想独占使用RequireJS节点。 我似乎无法得到这一切运行在同一个文件中,当我运行“节点r.js file.js”: define('a', function () { console.log("loaded a"); return {}; }); require(['a'], function(a){ }); 有什么方法可以重写define,并严格要求requirejs的定义。 也有一种方法来严格执行这个r.js而不是安装requirejs npm。

使用Node.js的WinRT

WinRT使其完整的API可用于Windows 8和Windows Server 2012 JavaScript应用程序 。 在Windows Server 2012上运行的node.js应用程序可以访问此API吗? 我在问,因为并不是所有低级别的节点模块都支持Windows(例如查询指标),而使用WinRT则可以直接访问操作系统。 @Roger Rowland – 我不确定你的信息是完全正确的。 MSDN表示WinRT可以在非商店应用程序中使用 – 请参阅“ 托pipe桌面应用程序和Windows运行时 ”

如何在nodejs中产生CONTROL + C.

我运行CMD产卵,但是如果你给我一个ping命令,我不能摆脱它,我怎么能发送控制台控制+ C,以避免这种情况? 谢谢! var fs = require('fs'); var iconv = require('iconv-lite'); function sendData (msg) { console.log('write msg ', msg); cmd.stdin.write(msg + "\r\n"); } function execCommand() { console.log('start command line') var s = { e : 'exec_command', d : { data : {} } }; cmd = require('child_process').spawn('cmd', ['/K']); cmd.stdout.on('data', function (data) { console.log(iconv.decode(data, 'cp866')); }); […]

自己的Node.js项目安装在自己的系统上

背景 我对Node.js很新,所以请不要讨厌 我发现NPM非常有用,因为我可以在全局安装Node.js包,然后像独立的可用path应用程序一样使用它们。 这在Windows上工作,这真的让我感到惊讶。 比如我用这种方法安装了UglifyJS,通过npm install -g uglifyjs ,现在我可以从系统的任何地方,从控制台通过uglifyjs <rest of command> (而不是node uglifyjs ..或者其他)运行它。 我想创build自己的独立 Node.js应用程序。 我如何得到星号? 我在这里问,因为大多数教程只涵盖了如何编写一个简单的脚本,然后运行它node (我已经覆盖) 我目前的configuration package.json : { "name": "hash", "version": "1.0.0", "author": "Kiel V.", "engines": [ "node >= 0.8.0" ], "main": "hash.js", "dependencies": { "commander" : "1.2.0" }, "scripts": { "start": "node hash.js" } } hash.js : var […]

NPM:使得package.json在Unix(Mac OSX)和Windows下运行

我已经从在Mac OSX下开发的第三方获得了一些NPM包。 它们的构build可以使用package.json中的“脚本”对象分解为开发或生产。 例如: "scripts": { "build": "NODE_ENV=dev node make.js –build", "build-prod": "NODE_ENV=prod node make.js –build", } 在Unix下,可以运行“npm run build”或“npm run build-prod”来build立任一目录(当然,在make.js中有一些条件语句)。 当然,它不能在Windows下工作 – 我不得不改变类似这样的命令: "scripts": { "build": "set NODE_ENV=dev&& node make.js –build", "build-prod": "set NODE_ENV=prod&& node make.js –build", } (请注意,重要的是不要在'&&'之前放置一个空格 – 否则环境variables会创build一个额外的空白空间,这会破坏make.js中的所有这些比较)。 但是,我想有一些通用的源代码树,可以在Unix或Windows下工作,无需编辑。 你可以请给出一些想法,如何有条件地拆分取决于操作系统的构build?

在Windows 8.1上安装node.js之后npm错误

我在Windows 8.1上安装了node-v0.10.31-x64软件包。 然后我重新启动我的电脑。 之后,我在命令行中运行node –version命令并获得v0.10.31的输出,但是当我运行npm install request cheerio命令时,出现以下错误: 我做错了什么,我该如何解决?