小编sam*_*yst的帖子

node.js通过aws-sdk模块重命名s3对象

是否可以通过aws-sdk重命名s3上的对象?我找不到方法,也许有一个临时解决方案......

node.js aws-sdk

11
推荐指数
2
解决办法
5131
查看次数

AWS Lambda无法返回PDF文件

我使用无服务器创建了一个lambda函数.此函数在GET请求上通过API网关触发,并应从缓冲区返回pdf文件.我正在使用html-pdf创建缓冲区并尝试使用以下命令返回pdf文件

  let response = {
    statusCode: 200,
    headers: {'Content-type' : 'application/pdf'},
    body: buffer.toString('base64'),
    isBase64Encoded : true,
  };
  return callback(null, response);
Run Code Online (Sandbox Code Playgroud)

但浏览器只是无法加载pdf,所以我不确切知道如何将pdf文件直接返回到浏览器.无法找到解决方案.

lambda amazon-web-services node.js aws-api-gateway serverless-framework

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

VPC中实例的Amazon AWS通信

我正在为我的应用程序在亚马逊上部署服务器.因此我决定使用EC2 ubunutu 14.04 64位t2.micro实例(免费).我想在测试我的应用程序之后扩展硬件.我的目标是建立一个准备在我想要的时候扩展的服务器系统.因此系统设计如下所示:

                              VPC (default)
           ___________________________________________
          |                                           |      
WWW <-----|----> NGINX <----> EXPRESS <------> NEO4J  |
          |___________________________________________|
Run Code Online (Sandbox Code Playgroud)

后来我希望能够将它扩展到这样:

                              VPC (default)
           _________________________________________________
          |                                                 |
          |               –– EXPRESS --           -- NEO4J  |
          |              |             |         |          |   
WWW <-----|----> NGINX -- -- EXPRESS -- -- ELB -- -- NEO4J  |
          |              |             |                    |
          |               -- EXPRESS --                     |
          |_________________________________________________|
Run Code Online (Sandbox Code Playgroud)

但就目前而言,我有第一个系统设计设置.我创建了3个Ubuntu实例.第一个是使用nginx进行设置,以实现反向代理,gzip压缩和负载平衡.可以通过端口80上的http访问 nginx实例.该快递实例包含我的节点/ JavaScript的在服务器上运行的代码3000端口.最后一个实例是以NEO4J作为我的NOSQL DB运行的.问题现在是,我不能让实例在我的默认VPC中相互通信.或者更确切地说,我首先希望nginx服务器(端口80)与我的快速服务器(端口3000)进行通信,这些服务器位于不同的t2.micro实例上,就像我上面展示的第一个设计一样.

我在sites-available目录中创建了一个名为"express"的nginx配置文件,并在启用了站点的目录中创建了一个符号链接,引用了"express"配置文件.

nginx的快递配置 …

nginx amazon-ec2 amazon-web-services express

7
推荐指数
1
解决办法
221
查看次数

将本地nginx服务器部署到公共ubuntu 16.04

我正在尝试将我的本地nginx服务器部署到公众.nginx服务器作为我的node express应用程序反向代理运行,该应用程序也在端口3000本地运行.因此我从/ etc/nginx/sites-available/express TO/etc/nginx/sites-enabled/express创建了一个符号链接,所以我的配置文件名为express,看起来像这样.

/ etc/nginx/sites-enabled/express

upstream express_servers{
    server 127.0.0.1:3000;
}

server {

    listen 80;

        location / {
        proxy_pass http://express_servers;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }

}
Run Code Online (Sandbox Code Playgroud)

我已从已启用站点的文件夹中删除了默认文件,但我没有更改我的nginx.conf文件,如下所示

/ etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx express ufw ubuntu-16.04

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

猫鼬模型无法访问正在进行的连接事务

在我当前的快速应用程序中,我想使用 mongodb 多文档事务的新功能。

首先重要的是指出我如何连接和处理模型

我的 app.js(服务器)首先使用 db.connect() 连接到数据库。

我需要 db.index 文件中的所有模型。由于模型将使用相同的猫鼬参考启动,因此我假设未来不同路线中模型的需求指向已连接且相同的连接。如果我对这些假设中的任何一个有错误,请纠正我。

我将连接引用保存在状态对象中,并在以后的事务需要时返回它

./db/index.ts

const fs       = require('fs');
const path     = require('path');
const mongoose = require('mongoose');

const state = {
 connection = null,
}

// require all models
const modelFiles = fs.readdirSync(path.join(__dirname, 'models'));
modelFiles
.filter(fn => fn.endsWith('.js') && fn !== 'index.js')
.forEach(fn => require(path.join(__dirname, 'models', fn)));

const connect = async () => {
  state.connection = await mongoose.connect(.....);
  return;
}

const get = () => state.connection; 

module.exports = {
 connect,
 get,
} …
Run Code Online (Sandbox Code Playgroud)

transactions mongoose mongodb express

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

将图像从 lambda 上传到 s3(损坏的文件)

我创建了一个 node express 应用程序,它使用multer将图像上传到我的“assets-in”s3 存储桶。图像上传到 s3 后,图像处理 lambda 函数会获取图像并将其调整为另一个 s3 存储桶。

上传脚本:

var assetsBucketIn = new AWS.S3({
  accessKeyId     : "...",
  secretAccessKey : "...",
  region          : "...",
  params : {
    Bucket : "..."
  }
});

var uploadAssets     = multer({inMemory : true});
var imgFieldSettings = [
  {
    name     : 'uploadFiles',
    maxCount : 7
  }
];

router.post('/images', uploadAssets.fields(imgFieldSettings), (req, res, next) => {
  ...
  uploadPromises = [];
  for(let i = 0; i < req.files.uploadFiles.length; i++){
    let params = {
      Key  : …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 express aws-lambda serverless-framework

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

如何在Windows Server上允许MySQL进行外部远程访问?

我在我的Windows Server 2008 R2上安装了xampp.我正在那里运行一个脚本,可以在一天内存储数据.现在我想通过mysql_connect("hostname","username","pw")连接数据库,从我自己的计算机或外部检索数据.经过一些研究,我得知我必须赞扬

> [...]
> #bind-address = 127.0.0.1
> #skip-networking 
  [...]
Run Code Online (Sandbox Code Playgroud)

在/etc/mysql/my.cnf中

没有在mysql中找到my.cf文件,但在xampp/mysql/bin/my.ini中找到了一个.但当我打开文件时,我发现线条甚至评论,所以没有改变任何东西.....奇怪.

然后我被告知创建一个主机设置为%的新用户.所以我做了.现在我试图访问我的电脑上的数据库(xampp),但当我想连接数据库时,我只是得到错误消息,连接失败.哪里出错了?

谢谢

编辑:

多数民众赞成如何完全连接

$connection=mysql_connect("hostname","usrname","password")or die(mysql_error());
mysql_select_db("dbname")or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是德语你可以trabslate.

警告:mysql_connect():Ein Verbindungsversuch ist fehlgeschlagen,da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat,oder die hergestellte Verbindung war fehlerhaft,da der verbundene Host nicht reagiert hat.在第4行的C:\ xampp\htdocs\tickerdata\get.php中

只是意味着连接失败,因为远程没有在某个时间段内做出反应或者连接错误,因为主机没有做出反应......

php mysql windows-server-2008-r2

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

猫鼬在 pre('save') 钩子中调用 .find

目前我正在尝试执行以下操作:

const ItemSchema = mongoose.Schema({
 ...
 name : String
 ...
});

ItemSchema.pre('save', async function() {
  try{
     let count = await ItemSchema.find({name : item.name}).count().exec();
     ....
     return Promise.resolve();
  }catch(err){
     return Promise.reject(err)
  }
});

module.exports = mongoose.model('Item', ItemSchema);
Run Code Online (Sandbox Code Playgroud)

但我只是收到以下错误:

类型错误:ItemSchema.find 不是函数

如何在我的 post('save') 中间件中调用 .find() 方法?(我知道,Schmemas 上有一个独特的属性。如果名称字符串已经存在,我必须以这种方式对其进行后缀)

猫鼬版本:5.1.3 nodejs 版本:8.1.1 系统:ubuntu 16.04

mongoose node.js mongoose-schema

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

执行长循环

我想执行一个循环,在div没有重载的情况下写入字符串.我已经在全球得到了名称的列表array叫做names.在array充满了大约2500名.现在我想在一个div使用中写下名字ajax.但是,当我想循环名称时,脚本有点过载,并在客户端发出警报时停止.这是我的循环:

for(var i = 0; i < names.length; i++){
   document.getElementById('div').innerHTML += names[i] + "<br/>";
}
Run Code Online (Sandbox Code Playgroud)

我也尝试在像100这样的较小步骤中交织循环(因为我认为循环不会超载).我也尝试使用window.setTimeout("function(i)",0);param i,每次调用函数时都会执行100步,直到我在length数组中names.

我知道有一个简单的方法.但我找不到那样的方式.....会很高兴获得帮助.

谢谢

html javascript

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

在开始构造/加载rootPage之前加载配置

我正在构建一个离子2 rc0应用程序.我的rootPage取决于在启动App之前必须加载的一些配置.我在应用程序上使用了一个名为Config的提供程序.在构建主页组件之前,如何延迟/等待加载配置.我需要Home的构造函数中的配置.是吗?像离子的预加载模块那样的情况?

那甚至是那样的任务的最佳位置吗?

我的配置模块使用

http.get(../assets/config/config.json) .toPromise() .then(res => this.data = res);

将json文件本地加载到我的Config提供程序的数据对象中.我在app.component.ts中的代码激活一个函数config.loadDefault()来从应用程序的config.json文件加载这些默认设置.....

app.components.ts

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from 'ionic-native';

import { Home } from '../pages/home/home';
import { Config } from '../providers/config/config';

@Component({
  template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class LoddenApp {

  public rootPage = Home;

  constructor(
    public platform : Platform,
    public config   : Config
  ){
    // loading config
    config.loadDefault()
      .then(data => …
Run Code Online (Sandbox Code Playgroud)

ionic2

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

如何存根节点aws-sdk的.promise()方法

自 2016 年 3 月以来,javascript/nodejs 的 aws sdk 确实在 AWS.Request链接上提供了 .promise() 方法。

现在我正在 AWS.DynamoDB.DocumentClient(...).get() 方法(它返回一个 AWS.Request 对象)上运行一些单元测试,之后我也调用 .promise() 方法来接收一个 Promise。

现在,当我存根 .get() 方法时,我已经返回了一个 Promise,所以我希望 .promise() 方法只返回我现有的 Promise(通过“返回这个”)。

我的代码就像

var docClient = AWS.DynamoDB.DocumentClient(...)
docClient.get(...).promise().then(...)
Run Code Online (Sandbox Code Playgroud)

和我的测试文件

var docClient = AWS.DynamoDB.DocumentClient(...)
var batchGetStub = sinon.stub(docClient, 'get').callsFake(function(){return Promise.resolve({id:1337})});
// now I need to also stub the .promise() method
var promiseStub = sinon.stub(docClient.get, 'promise').callsFake(functions(){return this}); // just return the promise back
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,我返回以下错误

类型错误:不能存根不存在的自己的财产承诺

我想我不知何故需要在我的假函数上声明一个 .promise 方法。

我试过这个:

this.protoype.promise = function(this){return this};

在我的假函数中,但这会抛出

类型错误:无法设置未定义的属性“承诺”

node.js sinon aws-sdk

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

feof():3不是有效的流资源

在我的台式机上安装了Windows 8并重新安装了aptana和xampp后,我无法使用!feof($ handle).我想得到存储在我的$ symb arra中的纳斯达克的符号.这是一个例子和我的错误:

$symb = array();
$url = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
$handle = fopen("$url","r");
while( !feof($handle) ){
    $line = fgetcsv($handle, 1024);
    if($line!="Symbol" && isset($line[0]) && $line[0] != null   ){
        $symb[] = trim($line[0]);
    }
    fclose($handle);
}
Run Code Online (Sandbox Code Playgroud)

而我的错误:

警告:feof():3不是第61行的C:\ xampp\htdocs\demos\screener\candleScreener.php中的有效流资源

警告:fgetcsv():3不是第62行的C:\ xampp\htdocs\demos\screener\candleScreener.php中的有效流资源

警告:fclose():3不是第66行的C:\ xampp\htdocs\demos\screener\candleScreener.php中的有效流资源.......

是否有一个设置我必须在php.ini文件上更改或它可能是什么?谢谢.

    .....
$url = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
$handle = fopen("$url","r");
$txt = fread( $handle, 8 );
print_r($txt);
    .....
Run Code Online (Sandbox Code Playgroud)

打印出:"符号"

所以我的fopen()很好......

php

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