小编ash*_*ash的帖子

节点JS - Nginx - proxy_pass到子目录 - Koa

我在端口5000上运行Koa应用程序,我希望Ngnix在子目录中提供应用程序 - 例如: http://example.com/myNodeApp

这就是我目前所拥有的 /etc/nginx/sites-enabled/default

        location ^~ /myNodeApp/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass    http://localhost:5000/;
        }
Run Code Online (Sandbox Code Playgroud)

类型的作品......除了那如任何重定向的事实this.redirect('/')在我兴亚应用程序转到nginx的Web根目录/

此外,它不会从我的Koa应用程序的public目录中呈现任何内容,例如样式表,javascript和图像.

我究竟做错了什么?谢谢.

nginx proxypass node.js koa

6
推荐指数
1
解决办法
2042
查看次数

API - 聚合应该在前端还是后端应用程序中完成?

我编写了一个从 MongoDB 数据库检索数据的 API。我还有一个使用来自 API 的数据的前端应用程序(如果相关的话,这两个应用程序都是使用 Koa 框架用 Node JS 编写的)

我需要对给定时期内需要计算(平均值、五分位数等)的大量数值数据进行聚合,这可能是按月、按年或按 personID 分组的所有数据。

我读过一些例子,人们说 API 应该用作数据库层的包装器,仅提供对原始数据的访问 - 但对我来说,逻辑将存在于数据库中(而不是询问前端应用程序来搅动数据)。

这是一个常见问题吗?根据您自己的经验,是使用 API 进行聚合更好,还是使用前端应用程序更好?

示例文档

{
    "date": ISODate("2016-07-31T07:34:05+01:00Z"),
    "value": 5,
    "personID": 123
},
{
    "date": ISODate("2016-08-01T12:53:05+01:00Z"),
    "value": 3,
    "personID": 789
}
Run Code Online (Sandbox Code Playgroud)

mongodb node.js aggregation-framework

5
推荐指数
1
解决办法
5963
查看次数

Sinatra - 多个公共目录

我想链接到Sinatra设置的默认公共目录之外的CSS和JavaScript文件.

我知道我可以set :public用来更改目录,但我想保留默认目录和其他'public_2'.

有没有办法做到这一点?

ruby public sinatra

4
推荐指数
1
解决办法
876
查看次数

PHP PDO - 使用MySQL变量

我正在尝试使用PDO在PHP中运行查询.查询在顶部有一些变量来确定排名,除了在$ sql中使用SET @var时,它返回一个空行集.但是,如果我删除有问题的SQL,它返回正常.

我不想在我的脚本中返回@prev_value,@ lamb_count或@rank_increasing,只返回它在SELECT中创建的等级.

你能让我知道我做错了吗?

谢谢

    $sql = "
    SET @prev_value = NULL;
    SET @rank_count = 0;
    SET @rank_increasing = 0;
    SELECT a.*
         , @rank_increasing := @rank_increasing + 1 AS row_num
         , CASE
           WHEN @prev_value = score 
              THEN @rank_count
           WHEN @prev_value := score 
              THEN @rank_count := @rank_increasing
           END AS rank
      FROM ( 
           -- INLINE VIEW --
           ) a
    ";
    try {
        $sth = $dbh->prepare($sql);
        $sth->execute(array($var1, $var2));
        return $sth->fetchAll(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        return $e;
    }
Run Code Online (Sandbox Code Playgroud)

php mysql sql variables pdo

4
推荐指数
1
解决办法
4478
查看次数

节点JS Express-Oracle连接池(ORA-24418:无法打开其他会话)

我在使用Oracle DB模块时遇到问题:https : //github.com/oracle/node-oracledb/blob/master/doc/api.md

我有一个应用程序,每小时有300到900次匹配(通常来自大约100个用户)。该应用程序在后台有许多$ .post请求,以从数据库中检索信息并显示给用户。

我最近切换到了该模块,因为它是Oracle自己的(我以前使用的是https://github.com/joeferner/node-oracle)。

这是我列出的方式:

/ bin / www

oracledb.createPool(
  {
    user            : 'USER'
    password        : 'PASS',
    connectString   : 'DB:1521/SID:POOLED',
    connectionClass : 'ARBITRARY_NAME',
    poolMin         : 1,
    poolMax         : 50,
    poolTimeout     : 300
  },
  function(err, pool)
  {

  if (err) {
      console.log(err);
  }

  require('../libs/db')(pool);    // Export pool to separate file

 }
)
Run Code Online (Sandbox Code Playgroud)

/libs/db.js

module.exports = function(pool) {

// Require oracle module for formatting
var oracledb = require('oracledb');

// Export acquire and query function
module.exports.acquire_and_query = function(sql, …
Run Code Online (Sandbox Code Playgroud)

sql oracle node.js express

4
推荐指数
1
解决办法
9706
查看次数

SQLite3 - 在一个语句中创建多个表

我正在学习 node js,并使用 SQLite3 创建一个可移植的项目/任务/工作流工具(它最终会在 github 上结束)。

如果这是用户第一次运行节点应用程序(并且 SQLite 数据库文件不存在),我希望它运行安装 SQL 脚本来创建它需要工作的所有表。

我可以将它们全部作为单独的事务处理,但这看起来很混乱,而且在一次调用中完成所有操作要容易得多。

在 Oracle 中,我知道我可以将它们全部包装如下:

BEGIN CREATE TABLE1...; CREATE TABLE2...; END;
Run Code Online (Sandbox Code Playgroud)

不过,我对 SQLite 了解不多(也不知道我是否可以做我想做的事情)。

下面的代码仅创建第一个表(而不是其他表)。

谢谢。

Express Node JS 应用程序在启动时调用 SQL

// Declare Express
var express   = require('express');

// Instantiate Express
var app       = express();

// Create a http server with express
var server    = require('http').createServer(app);

// Instantiate socket on the http express server
var io        = require('socket.io').listen(server);

// Declare filesystem
var fs        = require('fs');

// Database File  
var …
Run Code Online (Sandbox Code Playgroud)

sqlite node.js

1
推荐指数
1
解决办法
2万
查看次数