小编Mar*_*ark的帖子

sudo:npm:找不到命令

我正在尝试升级到最新版本的节点.我按照http://davidwalsh.name/upgrade-nodejs上的说明进行操作

但当我这样做时:

sudo npm install -g n
Run Code Online (Sandbox Code Playgroud)

我收到错误:

sudo: npm: command not found
Run Code Online (Sandbox Code Playgroud)

npm没有sudo.当我做:

whereis node
Run Code Online (Sandbox Code Playgroud)

我知道了:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node
Run Code Online (Sandbox Code Playgroud)

运行:

which npm
Run Code Online (Sandbox Code Playgroud)

显示:

/usr/local/node/bin/npm
Run Code Online (Sandbox Code Playgroud)

我在/sf/answers/354390291/上尝试了该解决方案

但我仍然得到同样的错误.我还查看了/ etc/sudoers文件,相关的行是:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Run Code Online (Sandbox Code Playgroud)

这看起来很好.我怎样才能让NPM使用sudo命令?

unix node.js npm

162
推荐指数
14
解决办法
52万
查看次数

Apache错误:端口443上的_default_ virtualhost重叠

尝试启动Apache时出现此错误.

_default_ virtualhost在端口443上重叠

我正在尝试设置SSL.几乎所有在线解决方案都说:

NameVirtualHost *:443
Run Code Online (Sandbox Code Playgroud)

到conf文件,但Apache仍然无法启动,只是说

行动开始失败.apache日志可能包含更多信息

Apache日志中没有信息.

apache virtualhost

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

将大数组传递给节点子进程

我想在大型阵列上进行复杂的CPU密集型工作.理想情况下,我想将此传递给子进程.

var spawn = require('child_process').spawn;

// dataAsNumbers is a large 2D array
var child = spawn(process.execPath, ['/child_process_scripts/getStatistics', dataAsNumbers]);

child.stdout.on('data', function(data){
  console.log('from child: ', data.toString());
});
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,node会给出错误:

产生E2BIG

我偶然发现了这篇文章

因此,将数据传递给子进程似乎是要走的路.我的代码现在是:

var spawn = require('child_process').spawn;

console.log('creating child........................');

var options = { stdio: [null, null, null, 'pipe'] };
var args = [ '/getStatistics' ];
var child = spawn(process.execPath, args, options);

var pipe = child.stdio[3];

pipe.write(Buffer('awesome'));

child.stdout.on('data', function(data){
  console.log('from child: ', data.toString());
});
Run Code Online (Sandbox Code Playgroud)

然后在getStatistics.js中:

console.log('im inside child');

process.stdin.on('data', function(data) {
  console.log('data is ', …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js

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

不要使用Stripe收集Zip代码

我试图使用Stripe v3付款.该指南位于https://stripe.com/docs/elements

我不想收集邮政编码.但是我无法弄清楚如何.我的HTML是:

<form>
  <label>
    <div id="card-element" class="field is-empty"></div>
    <span><span>Credit or debit card</span></span>
  </label>
  <button type="submit">Pay</button>
  <div class="outcome">
    <div class="error" role="alert"></div>
    <div class="success">
      Success! Your Stripe token is <span class="token"></span>
    </div>
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

而javascript是:

var card = elements.create('card', {
  style: {
    hidePostalCode: true,
    base: {
      iconColor: '#666EE8',
      color: '#31325F',
      lineHeight: '40px',
      fontWeight: 300,
      fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
      fontSize: '15px',

      '::placeholder': {
        color: '#CFD7E0',
      },
    },
  }
});

card.mount('#card-element');
Run Code Online (Sandbox Code Playgroud)

但它总是要求输入邮政编码:

在此输入图像描述

这里有一个Element标签指南https://stripe.com/docs/stripe.js#element-types.但我看不到我可以在哪里收集卡号,CVC和卡到期,但不是邮政编码......

javascript stripe-payments

19
推荐指数
3
解决办法
8497
查看次数

从Node HTTP请求中运行的算法运行时间要长得多

我有一个节点应用程序,它在x,y点图表上绘制数据.目前,我从前端发出GET请求,我的后端节点服务器接受请求,循环遍历数据点数组,使用Node Canvas绘制画布并将其流回到前端,在那里它显示为PNG图像.

使事情变得复杂的是,可以存在多边形,因此我的算法使用多边形包中的来计算点是否在多边形内部,并且如果数据指向的话,那么数据的颜色会不同.

当数据点少于50,000时,此工作正常.但是,当有800,000时,请求大约需要23秒.我已经对代码进行了分析,大部分时间用于遍历所有数据点,并确定在画布上绘制的位置以及颜色(取决于它是否在一个或多个多边形中).这是我制作的一个傻瓜.基本上我做这样的事情:

for (var i = 0; i < data.length; i++) {

  // get raw points
  x = data[i][0];
  y = data[i][1];

  // convert to a point on canvas
  pointX = getPointOnCanvas(x);
  pointY = getPointOnCanvas(y, 'y');

  color = getColorOfCell(pointX, pointY);

  color = color;

  plotColor.push({
      color: color,
      pointX: pointX,
      pointY : pointY
  });

}

// draw the dots down here
Run Code Online (Sandbox Code Playgroud)

算法本身不是问题.我遇到的问题是,当算法在HTTP请求中运行时,计算点的颜色需要很长时间 - 大约16秒.但是如果在前端镀铬,那就需要一秒钟(参见plunker).当我在命令行上使用Node运行算法时,只需不到一秒钟.因此,我的应用程序在HTTP请求中运行算法的事实正在大幅减慢它的速度.所以几个问题:

为什么会这样?为什么在HTTP请求中运行算法需要更长的时间?

如果有的话,我该怎么做才能解决这个问题?是否有可能提出启动任务的请求,然后在完成后通知前端并检索PNG?

编辑 我完全测试了运行算法并通过命令行创建PNG.它可以更快,不到半秒就可以计算出每个800k数据点应该是什么颜色.我想使用套接字向服务器发出请求并启动任务,然后让它返回图像.我很困惑,为什么代码在HTTP请求中运行时需要这么长时间......

编辑 问题是Mongo和Mongoose.我将每个多边形的坐标存储在Mongo中.我获取这些坐标一次,但当我将它们与每个x,y点/进行比较时.不知何故,这是大大延迟算法的原因.如果我关闭Mongo文档,算法从16秒到1.5秒...... …

javascript algorithm mongoose mongodb node.js

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

在 Sublime 3 中忽略文件搜索中的 node_modules

我想在搜索文件名时忽略 node_modules 文件夹中的任何内容。我试过:

在首选项 > 包控制 > 包设置 > 用户 - 设置中我包括:

"folder_exclude_patterns": ["*node_modules*"],
"file_exclude_patterns": ["*node_modules*"],
Run Code Online (Sandbox Code Playgroud)

然而,当我执行 cmd + p 并在 node_modules 中搜索文件时,Sublime 搜索......

sublimetext3

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

生成并保护礼品卡代码

我正在为一家生产礼品卡代码的公司工作,该代码可用于在网上商店支付货款.

我想知道生成这些礼品卡代码最安全的方法是什么.长度需要是16个字符(虽然可以协商)并且可以是字母数字(虽然数字会更加客户友好).

从我所看到的,最安全的方法是使用以下Java代码生成特定长度的礼品卡代码:

static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static SecureRandom rnd = new SecureRandom();

String randomString( int len ){
   StringBuilder sb = new StringBuilder( len );
   for( int i = 0; i < len; i++ ) 
      sb.append( AB.charAt( rnd.nextInt(AB.length()) ) );
   return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

这取自这里的答案.我从字符串中删除了小写字母,使其更加用户友好.所以这产生了36 ^ 16种组合.单独的数字将是10 ^ 16种组合.我认为数字本身就够了,但经常强调,鉴于礼品卡欺诈越来越普遍,字符串应该是字母数字.

这就是问题一:数字还是字母数字?

当用户使用在线商店的礼品卡支付商品时,我们会拨打电话,返回该礼品卡的余额和货币.鉴于礼品卡代码是在第三方服务器上输入的,现在这些礼品卡可供有权访问这些服务器的人使用.在用户部分兑换之后仍然存在余额的情况下,这显然是一个问题.

一种选择是,当我们调用我们的API(使用礼品卡代码)以获得余额时,我们返回并在他们的商店中保存一个随机字符串,只有当他们向我们开帐单时才能由在线商店使用 - 我们会将其与我们系统上的礼品卡代码相匹配.问题可能是用户在结账时输入的礼品卡代码会记录在他们的日志中的某个位置,任何有权访问这些日志的人都可以访问.

另一个选择是我们在部分兑换后刷新礼品卡代码.因此,用户基本上获得了用于余额的新礼品卡代码,并且前一个被取消.这可能是最安全的,但不是那么用户友好.

这就是第二个问题:我们如何确保仅部分兑换的礼品卡代码仍然有价值?

java security fraud-prevention e-commerce

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

将 ::-webkit-scrollbar 应用于一个特定元素

::-webkit-scrollbar当用户在 Android 设备上快速滚动条款和条件时,我使用来解决问题。该项目的其余大部分都使用iScroll。我只想将该::-webkit-scrollbar属性应用于条款和条件 div,而不是其他地方,因为 iScroll 在其他地方都使用。html 是:

<section class="content">
<h1>
    <strong>Terms & conditions</strong>
</h1>

<p>blah blah</p>
....
</section>
Run Code Online (Sandbox Code Playgroud)

我想我可以在 CSS 中做到这一点:

.content ::-webkit-scrollbar {
    width: 5px; 
}

.content ::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.5);
}

.content ::-webkit-scrollbar-thumb {
    margin-right: 5px;
    border-radius: 5px;
    background: rgba(255,255,255,0.5);
}
Run Code Online (Sandbox Code Playgroud)

但通过使用 .content 前缀,将不会应用 webkit-scroller,并且不会应用滚动条。如果我省略 .content,它会起作用,但随后也会应用于我不需要的其他区域。有什么想法如何仅针对一个特定元素吗::-webkit-scrollbar

html css

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

Amazon SES电子邮件不再发送

我在使用Amazon SES发送电子邮件时遇到问题.我有一个Amazon EC2实例.

它在前几天工作但我上周刚注意到所有电子邮件现在都失败了.我尝试使用Node和Amazon SES sdk以及从AWS中发送测试电子邮件.我在Node中有以下代码:

var aws = require('aws-sdk');

// load aws config
aws.config.loadFromPath('email_config.json');

// load AWS SES
var ses = new aws.SES({
    apiVersion: '2010-12-01'
});

ses.sendEmail({
    Source: from,
    Destination: {
        ToAddresses: to
    },
    Message: {
        Subject: {
            Data: 'Somebody registered'
        },
        Body: {
            Html: {
                Data: body,
            }
        }
    }
}, function(err, data) {

    console.log('email err is ', err, ' and data is ', data);

});
Run Code Online (Sandbox Code Playgroud)

日志的结果是:

email err is  null  and data is  { ResponseMetadata: { RequestId: …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services node.js

8
推荐指数
2
解决办法
692
查看次数

WooCommerce Order API始终创建空订单

我正在玩Woo Commerce API(v3.4.4).我可以买到一个产品:

curl -X GET \
  'http://localhost/wp-json/wc/v2/products/7?oauth_consumer_key=ck_8cbe42fb09c04954a63994c22145270f27871dec&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1535381325&oauth_nonce=iApWJblA1A5&oauth_version=1.0&oauth_signature=9T1T43FvOpBzVBU+RQS90zMB/XM=' \
  -H 'Cache-Control: no-cache' \
  -H 'Postman-Token: bdb7f5c9-5719-4bcf-b4fc-38aed3bd5d08'
Run Code Online (Sandbox Code Playgroud)

我收到了回复:

{
    "id": 7,
    "name": "Test product",
    "slug": "test-product",
    "permalink": "http://localhost/product/test-product/",
    "date_created": "2018-08-22T15:25:26",
    "date_created_gmt": "2018-08-22T15:25:26",
    "date_modified": "2018-08-22T15:25:26",
    "date_modified_gmt": "2018-08-22T15:25:26",
    "type": "simple",
    "status": "publish",
    "featured": false,
    "catalog_visibility": "visible",
    "description": "<p>this is a test product</p>\n",
    "short_description": "<p>the short desc</p>\n",
    "sku": "",
    "price": "9",
    "regular_price": "10",
    "sale_price": "9",
    "date_on_sale_from": null,
    "date_on_sale_from_gmt": null,
    "date_on_sale_to": null,
    "date_on_sale_to_gmt": null,
    "price_html": "<del><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&euro;</span>10.00</span></del> <ins><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&euro;</span>9.00</span></ins>",
    "on_sale": true, …
Run Code Online (Sandbox Code Playgroud)

wordpress orders woocommerce woocommerce-rest-api

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