为什么我不应该在生产模式下使用 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)
在我之前的问题的参考,我有一个关于$ 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
我想在apache服务器上通过子域运行我的nodejs应用程序.我在cpanel中创建了主域的子域.我的项目有3个以上的子域和所有子域指向不同的nodejs应用程序.子域将我重定向到适当的文件夹,但是当我在浏览器中通过子域运行应用程序时,它不会在apache服务器上运行节点应用程序.它仅显示项目的文件夹列表.
我参考以下链接以供参考.
http://www.codingtricks.biz/run-nodejs-application-apache/
项目目录:
/家庭/ ABC /的public_html /节点
我的主要域名是:
我在cpanel中创建了子域:
我在浏览器中访问子域:
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) 我正在尝试在我的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) 以下是我的收藏架构.
我不知道如何应用分页并在聚合查询中获取总照片数.我知道这可能,但我尝试了很多,但我没有解决问题.指导我以下问题.
如果有任何优化的解决方案,那么请指导我.
照片:
{_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) 我尝试在 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
我使用 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
我正在开发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) 有很多讨论并赞成基于标记的MEAN应用程序身份验证体系结构是安全的。但是我有一个问题,那就是它是否确实将用户名和密码作为授权和身份验证作为JSON Web令牌中的有效载荷传递,并且如果我们没有在有效载荷中传递安全信息,那么JSON Web Token如何在服务器中没有用户名/口令的情况下对用户进行身份验证侧。
我读了很多架构方面的文章,但是他们不能解释在不使用用户名/密码的情况下,他们使用了什么逻辑来验证令牌。
将身份验证令牌存储在cookie中而不是在Web存储中是否有效?
是的,我知道他们使用私钥和公钥进行验证,但这不足以进行身份验证。要验证特定用户,它需要一些密钥值,例如用户名/密码或标识特定用户所需的任何密钥访问权限。
我已经编写了以下测试用例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) 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 ×4
javascript ×2
mongodb ×2
angularjs ×1
apache ×1
docker ×1
dockerfile ×1
dotenv ×1
express-jwt ×1
jwt ×1
linux ×1
mean-stack ×1
mocha.js ×1
npm ×1
postgresql ×1
reactjs ×1
shell ×1
socket.io ×1
subdomain ×1
tail ×1