小编Bor*_*nte的帖子

NodeJS建议使用max-old-space-size

我很难理解NodeJS如何根据参数max-old-space-size行事.

以我的情况为例,我正在运行两个t2.small aws实例(2GB的RAM).

不知道为什么,但我确实设置了max-old-space-size = 4096(4GB).在这种情况下节点做什么?这种配置会导致可靠的内存分配失败吗?

如何根据服务器资源确定max-old-space-size的正确值?

PD:我的应用程序不断增加内存使用量,我正在尝试了解节点内部的所有内容.

v8 node.js

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

Docker + Laravel 队列:工作

我正在尝试在容器启动并运行后运行以下命令。

php artisan queue:work -n -q &
Run Code Online (Sandbox Code Playgroud)

"&" 之所以存在是因为守护程序选项已被弃用,后来从 Laravel 中删除。

但是,这完全破坏了我的容器启动。

CMD ["php", "artisan", "queue:work", "-n", "-q", "&"]
Run Code Online (Sandbox Code Playgroud)

我应该如何以 Docker 的方式做到这一点?

编辑:

使用 docker-compose 我将此行添加到我的 docker-compose.yml 文件中

command: bash -c 'php artisan queue:work -n -q;'
Run Code Online (Sandbox Code Playgroud)

容器已启动但未提供任何请求:S

使用这个:

command: bash -c 'php artisan queue:work -n -q &; echo "runs"; tail -f /dev/null'
Run Code Online (Sandbox Code Playgroud)

容器启动后停止

最终解决方案

所以最后我想也许负责交付应用程序的服务器不应该是运行队列的服务器。

因此,我启动了同一个 docker 镜像的另一个实例,其唯一目的是运行 artisan queue:work。

laravel docker lumen

12
推荐指数
2
解决办法
9312
查看次数

到同一控制器的多条路由

我正在尝试构建一个restfull API,我想到了这一点,而REST并不是非常明确的,一个资源应该可以通过多个URL访问.让我举一个例子.

Route::group(['prefix' => 'forum'], function(){

    Route::resource('categories', 'CategoriesController');

    Route::resource('categories.discussions', 'DiscussionsController');

    Route::resource('discussions', 'DiscussionsController');

});
Run Code Online (Sandbox Code Playgroud)

我的目的是能够通过将每个讨论附加到它所属的类别来访问每个讨论:

本地主机/论坛/分类/ {} CATEGORY_ID /讨论

或者通过这个网址

本地主机/论坛/讨论

有没有人有这样的东西工作而不重写完整的控制器.

这是我的讨论控制器:

class DiscussionsController extends ApiController {


public function __construct(DiscussionRepositoryInterface $discussion)
{
    $this->discussions = $discussion;
}

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index($category = null)
{
    $response = $this->discussions->all($category);

    return $this->respond($response->getData());
}

/**
 * Show the form for creating a new resource.
 *
 * @return Response
 */
public function create()
{ …
Run Code Online (Sandbox Code Playgroud)

php rest laravel

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

根据过滤结果展开 v-treeview

在树视图组件中,我想打开所有有搜索文本的节点。但预期的并没有发生。

所需的输出:打开所有有一些搜索文本的父项。 在此处输入图片说明 这是相同的代码笔。

https://codepen.io/anon/pen/MdxPKN?&editors=101

<div id="app">
  <v-container grid-list-md>
    <v-layout wrap>
      <v-flex xs6>
        <v-text-field label="search" v-model="search" box />

        <v-treeview :items="tree"
          :search="search"
          active-class="grey lighten-4 indigo--text"
          item-key="name"
          open-on-click
          :open-all="{searchLength}>0?true:false"
          hoverable />
      </v-flex>
    </v-layout>
  </v-container>
</div>
Run Code Online (Sandbox Code Playgroud)

vuejs2 vuetify.js

6
推荐指数
3
解决办法
3867
查看次数

使用 cURL 获取 JSON 响应

太不可思议了,我不知道我做错了什么,但我已经为此苦苦挣扎了几天。

这是来自 de 命令行的 cURL 请求:

curl -i -H "Accept: text/html" http://laravel.project/api/v1/users/4
Run Code Online (Sandbox Code Playgroud)

哪个返回

HTTP/1.1 200 OK
Server: nginx/1.6.2
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Date: Sun, 29 Mar 2015 10:33:36 GMT
Set-Cookie: laravel_session=eyJpdiI6ImNPTkZIYVJZSVRKaHBOZTR3SWh0dHc9PSIsInZhbHVlIjoiblpZYVJlN2dBY1ljejNIYUQycXpsNXRWd1I5a3JSRG8wSWdDOWlHVTMrYUcrdDBNVmVuZUNkOGtJb2M4bXFpTFF3cUdoTFZOVXBWXC82Q1luSGd5bjJBPT0iLCJtYWMiOiI0ZTEwOWQxMmVhMzY2NjI1Yzc1MTBmZmRmYjUyOGQwNDlhYzRjOTNiM2FiOWIyN2E1YjA0OTM4YTUxZmNmMzMzIn0%3D; expires=Sun, 29-Mar-2015 12:33:36 GMT; Max-Age=7200; path=/; httponly

{
"data":{
  "id":4,
  "name":"Helena",
  "email":"hh@gmail.com",
  "created_at":"2015-03-26 21:13:16",
  "updated_at":"2015-03-26 21:13:16"
  }
}
Run Code Online (Sandbox Code Playgroud)

所以一切看起来都很好,内容类型设置正确,响应是 JSON。但是现在看看如果我在 PHP 中使用 curl 使用 API 会发生什么。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $final_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$result = curl_exec($ch); …
Run Code Online (Sandbox Code Playgroud)

php json curl laravel

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

具有固定参数的Vue-Router别名

我在这里有这个小路由器,基本上我想为我的站点使用默认语言。这意味着,如果您访问www.example.com/about和www.example.com/es/about,则应该看到相同的内容

我以为别名会适合这种情况,但是在尝试访问/ about时遇到错误。

[vue-router] missing param for aliased route with path "/:language/about": Expected "language" to be defined
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为未设置:language参数,有什么办法可以实现我想要的?每当用户点击别名时,是否可以设置固定的:language参数?

这是我的路由器。

[vue-router] missing param for aliased route with path "/:language/about": Expected "language" to be defined
Run Code Online (Sandbox Code Playgroud)

vue-router vuejs2

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

Webpack 生产构建 - TypeError e[t] 未定义

所以我让应用程序在本地运行良好,构建也可以运行,但是当我在生产中访问我的主页时(唯一有错误的路径)然后我收到这条消息。

在此处输入图片说明

在此处输入图片说明

我不知道这可能意味着什么,这是我的 webpack 配置文件。

webpack.base.config.js

const path = require('path')
const webpack = require('webpack')
const vueConfig = require('./vue-loader.config')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const CompressionPlugin = require('compression-webpack-plugin');


const isProd = process.env.NODE_ENV === 'production'

module.exports = {
  devtool: isProd
    ? false
    : '#cheap-module-source-map',
  output: {
    path: path.resolve(__dirname, '../dist'),
    publicPath: isProd ? 'https://d267jrn1ysxlb3.cloudfront.net/dist/' : '/dist/',
    filename: '[name].[chunkhash].js'
  },
  resolve: {
    alias: {
      'public': path.resolve(__dirname, '../public'),
      '@': path.resolve('__dirname', '../')
    }
  },
  module: {
    noParse: /es6-promise\.js$/, // avoid …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-2

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

asyncData 中的 Vuejs + SSR + router.push()

我有一个 VUEJS SSR 设置,但不知道如何解决这个问题。

我的路线是这样的:

{
  path: '/:blogSlug', component: BlogPost, name: 'blog-post'
}
Run Code Online (Sandbox Code Playgroud)

然后在 asyncData 函数中我有这个代码:

asyncData({store, route, router}) {
            let slug = route.params.blogSlug

            if (!store.state.blog.posts[slug]) {
                return store.dispatch('FETCH_BLOG_POST', { slug: slug }).catch((error) => {
                    console.log("error - pushing to /404")
                    router.push('/404');
                })
            }

            return(Promise.resolve());
        }
Run Code Online (Sandbox Code Playgroud)

如果我禁用我的 javascript,这现在有效,主要是因为在服务器上执行了 asyncData(),然后如果没有找到博客文章,我推送 ('/404') ,它显示一个漂亮的“未找到”页面,然后发回 html到浏览器。

然后,主要是因为浏览器中的 URL 没有改变,在 hydration 过程中一切都失败了,因为 VueJS 仍在尝试渲染 BlogPost 组件而不是 404。

我的问题是,我可以在我的窗口中设置更新的 url。初始状态?或者我可以以某种方式从浏览器更改 URL?

如果不清楚,我可以将您需要的所有内容添加到问题中。

javascript server-side-rendering vue-router vue-component vuejs2

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

dataLayer.push()返回值的含义

我正在努力在我的工作中实施Google跟踪代码管理器,我确实遇到了管理员控制台不可用的问题,所以我必须相信配置是正确的.

无论如何,我初始化了dataLayer数组,我包含了GTM脚本,现在有些事件被发送到谷歌.

已启用增强型电子商务,但如果我将以下代码段粘贴到我的控制台上(摘自" https://enhancedecommerce.appspot.com/checkout "):

dataLayer.push({
  "event": "checkout",
  "ecommerce": {
    "checkout": {
      "actionField": {
        "step": 1
      },
      "products": [{
        "id": "b55da",
        "name": "Flexigen T-Shirt",
        "price": "16.00",
        "brand": "Flexigen",
        "category": "T-Shirts",
        "variant": "red",
        "dimension1": "M",
        "position": 0,
        "quantity": 1
      }]
    },
    "promoView": {
      "promotions": [{
        "id": "bts",
        "name": "Back To School",
        "creative": "CHECKOUT right",
        "position": "right sidebar"
      }]
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

控制台返回"true",并且没有数据发送到GTM.

我的问题是,返回值在GTM中意味着什么,而且,当我推出结账事件时,我能否知道GTM标签不发送数据的原因?

只是为了澄清,这个其他代码段工作,返回false并将数据发送到谷歌.

dataLayer.push({
  "event": "addToCart",
  "ecommerce": {
    "currencyCode": "USD",
    "add": {
      "products": [{
        "id": "b55da",
        "name": "Flexigen T-Shirt",
        "price": …
Run Code Online (Sandbox Code Playgroud)

javascript google-tag-manager

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

从 Laravel 中的 JSON 字符串中删除添加的反斜杠

因此,我尝试在数据库中存储一些 HTML 代码,然后通过 API 检索它。

初始 HTML:

<img src="https://www.google.se/images/google_80w1ht.gif" alt="Google logo">
Run Code Online (Sandbox Code Playgroud)

然后我存储在数据库中,没有任何进一步的麻烦:

$data = $request->only(['content');

$comment = $this->repo->update($data, $id);
Run Code Online (Sandbox Code Playgroud)

如果我进入 MySQL Workbench,这是存储的数据:

<img src="https://www.google.se/images/google_80wht.gif" alt="Google logo">
Run Code Online (Sandbox Code Playgroud)

然而,当我检索它想要将 HTML 作为 JSON 参数输出时,它就被打得一团糟。

这是 json:

{"title": "<img src=\"https://www.google.se/images/google_80w1ht.gif\" alt=\"Google logo\">"}
Run Code Online (Sandbox Code Playgroud)

我没有在插入期间或检索期间应用任何转换。

如何删除添加的额外反斜杠?()

php json laravel lumen

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

AWS-S3 orb - Circle CI - 意外参数:参数

我在构建中遇到以下错误:

#!/bin/sh -eo pipefail
# Error calling workflow: 'build-deploy'
# Error calling job: 'build_test_es'
# Error calling command: 'aws-s3/sync'
# Unexpected argument(s): arguments
# 
# -------
# Warning: This configuration was auto-generated to show you the message above.
# Don't rerun this job. Rerunning will have no effect.
false
Exited with code 1
Run Code Online (Sandbox Code Playgroud)

这就是我的 config.yml 文件的样子,我抑制了一些部分。

version: 2.1
orbs:
  aws-s3: circleci/aws-s3@1.0.0
jobs:
  build_test_es:  
    docker:
      - image: circleci/node:10.15
    steps:
      - checkout
      - setup_remote_docker

      - run:
          name: NPM install
          command: |
            cd …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 circleci circleci-2.0

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