小编Dip*_*vda的帖子

为什么我不应该在生产模式下使用 dotenv?

为什么我不应该在生产模式下使用 dotenv ?

我在一些网站上看到了以下代码。但我不明白他们为什么要做这个条件检查。

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
}
console.log('Bla is :', process.env.Bla);(*)

Run Code Online (Sandbox Code Playgroud)

假设行(*)的输出不是生产模式下的 line(*) 的输出是 -> Bla 是 : Bla

如果 NODE_ENV 是生产环境,行 (*) 的输出是什么?(据我所知,我认为会的undefined

node.js npm dotenv

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

如何在mongoDB中对$ lookup结果应用条件?

在我之前的问题的参考,我有一个关于$ lookup的问题,添加一些条件.您可以从以下链接描述中获得有关问题的足够参考.

照片:

{_id: 1, photo_name: '1.jpg', photo_description: 'description 1', album_id: 1, flag:1 },
{_id: 2, photo_name: '2.jpg', photo_description: 'description 2', album_id: 1, flag:1 },
{_id: 3, photo_name: '3.jpg', photo_description: 'description 3', album_id: 1, flag:1 },
{_id: 4, photo_name: '4.jpg', photo_description: 'description 4', album_id: 2, flag:0 },
{_id: 5, photo_name: '5.jpg', photo_description: 'description 5', album_id: 2, flag:0 },
{_id: 6, photo_name: '6.jpg', photo_description: 'description 6', album_id: 2}
Run Code Online (Sandbox Code Playgroud)

专辑:

{_id: 1, album_name: "my album 1", album_description: "album description 1", emoji_id: 1}, …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework mongodb-aggregation

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

如何在apache服务器中运行nodejs应用程序

我想在apache服务器上通过子域运行我的nodejs应用程序.我在cpanel中创建了主域的子域.我的项目有3个以上的子域和所有子域指向不同的nodejs应用程序.子域将我重定向到适当的文件夹,但是当我在浏览器中通过子域运行应用程序时,它不会在apache服务器上运行节点应用程序.它仅显示项目的文件夹列表.

我参考以下链接以供参考.

http://www.codingtricks.biz/run-nodejs-application-apache/

在apache中运行Node.js?

项目目录:

/家庭/ ABC /的public_html /节点

我的主要域名是:

https://www.example.com

我在cpanel中创建了子域:

https://www.node.example.com

我在浏览器中访问子域:

node.example.com

我在softlayer服务器上部署了我的应用程序.

以下是apache配置:

档案:

/usr/local/apache/conf/includes/abc_node.conf

组态:

<VirtualHost 132.159.25.21:80>
   ServerAdmin info@example.com
   ServerName node.example.com
   ServerAlias www.node.example.com

   DocumentRoot /home/abc/public_html
   <Directory /home/abc/public_html/node>
      Options -Indexes +FollowSymLinks
      AllowOverride None
      Require all granted
   </Directory>

   ProxyRequests Off
   ProxyPreserveHost On
   ProxyVia Full
   <Proxy *>
      Require all granted
   </Proxy>

   <Location /node>
      ProxyPass http://132.159.25.21:8080
      ProxyPassReverse http://132.159.25.21:8080
   </Location>

   ErrorLog /home/abc/public_html/node/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/abc/public_html/node/access.log combined …
Run Code Online (Sandbox Code Playgroud)

apache subdomain reverse-proxy node.js

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

将通常可以自行执行的第三方JavaScript库导入React应用(使用create-react-app)

我正在尝试在我的React应用程序(通过中构建create-react-app)中使用第三方库,该库通常是通过<script>html文件中的标签加载的:

index.html

    ...
    <script src="some-library.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

该脚本基本上只是在文件末尾调用自身:

some-library.js

function foo() {
  ...
}

foo();
Run Code Online (Sandbox Code Playgroud)

没有模块或export语句,所以我尚不清楚如何在我的React应用程序中使用它。

使用npm安装库之后,我尝试在文件中使用importand require()语句App.js,但未成功:

App.js

import "some-library";                          // doesn't work
require("some-library");                        // doesn't work
const SomeLibrary = require("some-library");    // doesn't work

...
Run Code Online (Sandbox Code Playgroud)

有关在React中使用第三方库的一些说明建议在React生命周期挂钩之一中使用该库,例如componentDidMount(),但是我无法从该库调用任何函数:

App.js

import React, { Component } from "react";
import * as SomeLibrary from "some-library";

class App extends Component {
  componentDidMount() {
    SomeLibrary.foo();  // doesn't work (wasn't exported in "some-library")
  } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs create-react-app

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

mongodb如何在聚合查询中应用分页和总照片数

以下是我的收藏架构.

我不知道如何应用分页并在聚合查询中获取总照片数.我知道这可能,但我尝试了很多,但我没有解决问题.指导我以下问题.

如果有任何优化的解决方案,那么请指导我.

照片:

{_id: 1, photo_name: '1.jpg', photo_description: 'description 1', album_id: 1},
{_id: 2, photo_name: '2.jpg', photo_description: 'description 2', album_id: 1},
{_id: 3, photo_name: '3.jpg', photo_description: 'description 3', album_id: 1},
{_id: 4, photo_name: '4.jpg', photo_description: 'description 4', album_id: 2},
{_id: 5, photo_name: '5.jpg', photo_description: 'description 5', album_id: 2},
{_id: 6, photo_name: '6.jpg', photo_description: 'description 6', album_id: 2}
Run Code Online (Sandbox Code Playgroud)

专辑:

{_id: 1, album_name: "my album 1", album_description: "album description 1", emoji_id: 1},
{_id: 2, album_name: "my album 2", album_description: "album description …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

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

容器上的 PostgreSQL 抛出错误 chmod: /var/lib/postgresql/data: Operation not allowed

我尝试在 docker 和我创建的以下文件上运行 Postgres 12。我不明白我在哪里犯了错误以及 PostgreSQL 文件权限的问题。

Dockerfile:

FROM postgres:12.0-alpine
USER root
RUN chmod 0775 /var/lib/postgresql
RUN chown postgres /var/lib/postgresql
USER postgres
# RUN chmod 0775 /var/lib/postgresql
# RUN chown postgres /var/lib/postgresql
RUN ls -l /var/lib/postgresql
# RUN pgctl -D /usr/local/psql/data initdb &&\
RUN initdb -D /var/lib/postgresql/data &&\
    echo "host all  all    0.0.0.0/0  md5" >> /var/lib/postgresql/data/pg_hba.conf && \
    echo "listen_addresses='*'" >> /var/lib/postgresql/data/postgresql.conf && \
    pg_ctl start && \
    psql -U postgres -tc "SELECT 1 FROM pg_database WHERE datname = 'test'" …
Run Code Online (Sandbox Code Playgroud)

postgresql database-administration dockerfile docker-compose postgresql-12

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

Logstash 在 docker-container 中反复关闭

我使用 docker-compose 来运行 ELKB。我的主要目标是启动elasticsearch 和logstash 容器。Logstash容器应该成功与elasticsearch连接,并将日志传递给elasticsearch进行进一步的搜索或处理。

但在不知不觉中原因logstash容器应该频繁停止。我需要保留在logstash和elasticsearch容器中,但它没有发生。

我不知道是什么原因导致logstash容器反复关闭。

我使用elasticsearch:7.6.3和logstash:7.6.3

请检查下面的代码并指导我在哪里犯了错误。

docker-compose.yml

# Docker version 19.03.5
# docker-compose version 1.25.3
version: "3.7"
services:
  elasticsearch:
    container_name: elasticsearch
    build:
      context: ./elasticsearch
      dockerfile: Dockerfile
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch/data:/usr/share/elasticsearch/data:rw
      - ./elasticsearch/logs:/usr/share/elasticsearch/logs:rw
    restart: always
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - elkb
  logstash:
    container_name: logstash
    build:
      context: ./logstash
      dockerfile: Dockerfile
    ports:
      - 9600:9600
      - 5000:5000/udp
      - 5000:5000/tcp
    volumes:
      - ./logstash/input-logs:/usr/share/logstash/logs
      - ./logstash/data:/var/lib/logstash:rw
      - ./logstash/logs:/var/logs/logstash:rw
    restart: always
    ulimits:
      memlock:
        soft: -1
        hard: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose logstash-configuration elasticsearch-7

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

如何在变量中存储tail命令的结果?

我正在开发MEAN堆栈中的应用程序.我想在新图像上传到服务器时创建一个图像大小调整和裁剪脚本作为后台进程.

脚本在文件夹中监视新图像上传并裁剪它.

我更喜欢Linux shell脚本作为守护进程的方式.

我使用了以下想法来完成任务. - 在photolog.txt文件中写入服务器上的新图像上传,我可以逐行抓取图像. - 我在watch.sh shell脚本文件中读到了photolog.txt. - 它逐行迭代,直到达到EOL. - 再次新文件到达它将附加到EOL. - 我设法通过tail命令获取更新文件,并在命令行中显示最新的添加文件.这个代码很有魅力.

现在我成功获取服务器上新添加文件的图像列表.但主要的问题是我无法在变量中存储tail命令的输出,并且它必须对我来说因为我得到的任何输出都是文件名的完整路径,它将在imagemagick crop命令中使用.

Imagemagick中心裁剪与缩放图像.

convert -define file-type:size = widthxheight original_filename -thumbnail 120x120 ^ -gravity center -extent 100x100 resize_filename

watch.sh

#!/bin/bash
path="/var/www/html/AppBite/trunk/photolog.txt"
cat $path | \

until false
do
    # If file exists 
    if [[ -f "$path" ]]
    then    
        while IFS= read -r photo
        do
            imageFormat=`identify $photo | awk '{print $2}'`
            imageScale=`identify $photo | awk '{print $3}'`
            echo "$photo $imageFormat $imageScale"
        done
    fi
    # Continous …
Run Code Online (Sandbox Code Playgroud)

linux shell tail

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

如何在Json Web令牌中传递安全数据,例如用户名/密码?

有很多讨论并赞成基于标记的MEAN应用程序身份验证体系结构是安全的。但是我有一个问题,那就是它是否确实将用户名和密码作为授权和身份验证作为JSON Web令牌中的有效载荷传递,并且如果我们没有在有效载荷中传递安全信息,那么JSON Web Token如何在服务器中没有用户名/口令的情况下对用户进行身份验证侧。

我读了很多架构方面的文章,但是他们不能解释在不使用用户名/密码的情况下,他们使用了什么逻辑来验证令牌。

将身份验证令牌存储在cookie中而不是在Web存储中是否有效?

是的,我知道他们使用私钥和公钥进行验证,但这不足以进行身份​​验证。要验证特定用户,它需要一些密钥值,例如用户名/密码或标识特定用户所需的任何密钥访问权限。

jwt angularjs mean-stack express-jwt

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

摩卡柴测试用例不会自动终止

我已经编写了以下测试用例mocha-chai,它工作正常并显示所有结果都成功通过。但成功通过全部 6 个测试用例后,它并不会终止执行。我不知道为什么我的测试用例没有自动终止,我需要单击 CTRL+C 来终止测试用例。

我不知道测试已成功通过但未终止的原因是什么。我还在测试用例的末尾编写了 did() 但仍然不起作用

我使用 PostgreSQL 作为数据库,NodeJS 作为后端服务器。

测试.js

const { colors } = require('mocha/lib/reporters/base');

colors.pass = 32;
const { describe, it } = require('mocha');
const { expect } = require('chai');
const request = require('superagent');
const should = require('should');
const fs = require('fs');
const path = require('path');
const moment = require('moment-timezone');

const envPath = path.join(__dirname, '.env');
require('dotenv').config({ path: envPath });

const Sequelize = require('sequelize');
const db = require('../db/models');

// Test that server is running …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js node.js

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

如何使用连接到套接字的socket.id发送多个客户端(Node.js,Socket.io)

socket.on('private-message', function(data){
        console.log("Sending: " + data.content + " to " + data.username);
        console.log(clients[data.username].socket.join(', '));
        if (clients[data.username]){    
            io.sockets.connected[clients[data.username].socket].emit("add-message", data);
        } else {
            console.log("User does not exist: " + data.username);
        }
    });
Run Code Online (Sandbox Code Playgroud)

这段代码可以正常工作,但是我想要的是,我想使用其套接字ID发送多个连接到套接字的已连接客户端。

io.sockets.connected [reciver.socketid] .emit(“ add-message”,data);

有什么办法可以写接收者socket.id组吗?我不想使用for循环。

node.js socket.io

0
推荐指数
2
解决办法
1832
查看次数