- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 iisnode ( https://github.com/tjanczuk/iisnode ) 在 node.js 下设置 Highcharts 导出服务器。它基本上充当从 IIS 到 Node 的请求之间的管道。伟大的!只是,如何“安装”highcharts 导出服务器以便它使用 iisnode?我按照说明安装了 highcharts-export Node 模块,但它安装在 (Windows) AppData\Roaming\npm 下。如何将iisnode移动或指向导出服务器?从 npm 安装后,此导出服务器将通过以下命令运行:
highcharts-export-server --enableServer 1
因此,要在 IIS8 + iisnode 中安装并使用它1) 在本地安装导出服务器的正确目录是什么(在 Windows 上,通过 npm 拉入的模块转到 C:\Users\\AppData\Roaming\nmp\使用 npm 安装软件包的登录用户在哪里)?2)为此需要什么iisnode配置?
我已经在我们的开发盒上设置并运行了 iisnode,并且所有示例都有效。我的困惑部分在于 issnode 完全缺乏文档。我找到的所有链接都只是重复 issnode 开发人员的链接中列出的项目,而没有实际的“这里是如何获取 npm 中存在的 Node 应用程序并让它在 issnode 中工作。”我不一定需要每一步都握着我的手。我只是没有看到任何可以遵循的步骤列表。
最佳答案
安装 Node (如果尚未安装)
安装iisnode(如果尚未安装=>https://github.com/tjanczuk/iisnode)
验证 IIS 是否已将 iisnode 注册为模块
创建一个新的应用程序池,设置为“无托管代码”
创建一个新的空网站
将iisnode示例内容加载到其中,更新web.config
验证您可以点击它并且它运行并且可以写入它的日志
转到 IIS 网站文件夹并运行这些 npm 命令
npm init/空
npm install --save highcharts-export-server
npm install --save tmp
添加文件 hcexport.js 并重新配置 web.config
var fs = require('fs');
var http = require('http');
var path = require("path");
var tmp = require('tmp');
const exporter = require('highcharts-export-server');
http.createServer(function (req, res) {
try {
if (req.method !== 'POST') { throw "POST Only"; }
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
if (body === '') { throw "Empty body"; }
var tempFile = tmp.fileSync({discardDescriptor: true, postfix: ".svg", dir: process.cwd()});
var input = JSON.parse(body);
input.outfile = path.basename(tempFile.name);
exporter.initPool();
exporter.export(input, function (err, exres) {
if (err) { throw "Export failed"; }
var filename = path.join(process.cwd(), exres.filename);
exporter.killPool();
fs.readFile(filename, function(err, file) {
res.writeHead(200, { 'Content-Type': 'image/svg+xml', 'Content-disposition': 'attachment; filename=' + exres.filename });
res.write(file.toString());
res.end();
tempFile.removeCallback();
});
});
});
} catch (err) {
console.log({port: process.env.PORT, error: err});
res.writeHead(409, { 'Content-Type': 'text/html' });
res.end(err.message);
}
}).listen(process.env.PORT);
根据需要进行扩展以支持您计划使用的导出类型。
highcharts-export-server 在内部使用 phantomjs,这可能会在某些错误情况下运行,占用 100% 的可用 CPU,如果您看到这种情况,您可以使用以下命令杀死它:
Taskkill/IM phantomjs.exe/F
关于node.js - 在 iisnode 下运行 Highcharts 导出服务器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43413867/
在 Server 2008 R2 64 位、IIS 7.5、iisnode 0.2.4.0、node.js 0.10.5 上出现此错误 - HTTP 错误 500.21 - 内部服务器错误 处理程序“
我有一个运行良好的简单服务器(如下),问题是 process.env.PORT 的值不是我预期的数字,而是一个字符串值,如 "\\.\pipe\d226d7b0-64a0- 4d04-96d4-a75
我的iisnode在win8/IIS8上运行顺利。我创建了一个非常简单的 hello world 并且效果很好。但是,当我尝试使用 process.stdin 时,出现以下错误: Applicatio
我正在使用带有 IIS (IISNode) 的 Node JS 和 Microsoft 的 MS SQL 驱动程序包 (MSNodeSQL) 创建一个 http 服务器。当通过 http 服务器访问我
我正在尝试使用 GitHub webhooks 和 node.js 构建自动代码拉取服务。当我昨天运行这段代码时,它就像一个魅力,并将正确的存储库拉到正确的文件夹中,但今天它开始默默地失败。它可以在我
我运行 Node.js 应用程序并遇到严重错误 iisnode encountered an error when processing the request. HRESULT: 0x2 HTTP
我发现 iisnode 比使用 node 命令慢。 有很多benefits使用 iisnode,但性能很差。 我正在使用来自 here 的配置文件. 知道如何加快速度吗? 更新: 我注意到每个页面调用
我敢肯定这个问题已经被问过一百万次了,但到目前为止我还没有找到解决以下问题的方法。 我有一个使用 nodejs 和 express 运行的基本应用程序。当我在 Node 中运行应用程序时,它默认将我发
我有这个小服务器,它在 iisnode 上运行良好: 索引.js var express = require('express') var app = express() var port = pro
当我对 app.js 文件进行更改并保存时,即使在默认的 60,000 毫秒之后,我的 node.js 应用程序似乎也不会自动更新。我错过了什么吗? 最佳答案 您可以尝试在iisnode.yml(ht
我正在努力让 IISNode 默认为我的 Node 应用程序提供主 server.js 应用程序文件,此时如果我浏览到 http://localhost:80/我的应用程序运行的地方只是列出了应用程序
当使用 IISNode 在 IIS 上为 NodeJS 应用程序提供服务时,将托管管道设置为经典还是集成更好? 最佳答案 如果您不使用任何 ASP.NET,则可以安全地使用其中任何一个并禁用 ASP.
我正在尝试使用 iisnode 运行 express。我按照提供的示例进行操作,但是当尝试将最新的 Express 版本与基本示例一起使用时,无法使其正常工作。 我遇到错误 Cannot GET/no
有谁知道一种方法可以让一个 JavaScript 文件或一组文件始终在 IISNode 下运行而不需要客户端请求?这个想法是让脚本充当服务,但让它们在 IISNode 下运行。 谢谢!csh3 最佳答
我的网站在 express 中运行。但现在我需要在 IIS 上托管它。如何让我的路由与 IISNode 一起工作? 我能够将我的静态内容移动到/public 文件夹(html、前端 js 等)。我不想
我知道我可以使用 web.config。 指定一个环境 node_env 变量,它可以通过 process.env.node_env 在服务器端 *.js 文件中访问。 但是,例如我想访问另一个环境
我通过使用 iisnode 将 Node 与 IIS 结合使用. 我觉得以前在 Node 中配置服务器的事情现在可以直接在 IIS 中完成。 比如: https 配置(和证书) http 到 http
使用 Powershell cmdlets for Node on Azure, 时特别是 Add-AzureNodeWebRole,您将获得所有设置的启动任务,以将 iisnode 部署到您的 Az
IISNode 与 NodeJS 结合,会不会因为 IIS 本身在 NodeJS 面前就是一个阻塞进程,所以 NodeJS 就变成了一个阻塞进程? 最佳答案 本文中的“阻塞”指的是 I/O。 IIS
我在 Windows 2008 R2 和 Node 0.8 上使用 IISnode 0.1.21 x64 我的应用程序已成功运行 4 个线程。但一段时间后(例如 3-4 小时),响应无法从 IISno
我是一名优秀的程序员,十分优秀!