我在日志文件中发现了一些我不明白的条目.除了所有预期的GET请求,我发现了相当多的HEAD请求,我知道我的应用程序没有.
我没有phpmyadmin,SQL或我的服务器上安装的任何其他资源(运行Mongo DB的纯Node.js应用程序).
这可能是自动软件扫描我的服务器的漏洞吗?
[0mHEAD http://54.xxx.xxx.xxx:80/2phpmyadmin/ [36m301 [0m2.044 ms - 91[0m
[0mHEAD http://54.xxx.xxx.xxx:80/3phpmyadmin/ [36m301 [0m1.789 ms - 91[0m
[0mHEAD http://54.xxx.xxx.xxx:80/4phpmyadmin/ [36m301 [0m1.749 ms - 91[0m
[0mHEAD http://54.xxx.xxx.xxx:80/MyAdmin/ [36m301 [0m1.770 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA/ [36m301 [0m1.705 ms - 83[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA2011/ [36m301 [0m1.762 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA2012/ [36m301 [0m1.470 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA2013/ [36m301 [0m1.316 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA2014/ [36m301 [0m1.605 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/PMA2015/ [36m301 [0m1.282 ms - 87[0m
[0mHEAD http://54.xxx.xxx.xxx:80/admin/ [36m301 [0m1.194 ms - …
Run Code Online (Sandbox Code Playgroud) 我是一名API开发人员,通常会编写端点,要求将结果从一个异步调用传递给另一个异步调用,即async waterfall.
我通常使用promises以下方式执行此操作:
task1()
.then(result1){
task2(result1)
.then(result2){
task3(result2)
.then(result3){
// API response
})
.catch(function(err){
// Task 3 handle err
})
})
.catch(function(err){
// Task 2 handle err
})
})
.catch(function(err){
// Task 1 handle err
})
Run Code Online (Sandbox Code Playgroud)
很明显,使用回调并没有多少收获.而不是"回调地狱"我现在得到了"承诺地狱".
我看过npm bluebird,但似乎并不支持瀑布承诺.
有时我会使用async和wrap返回promise的任务:
const tasks = [
job1: function(cb){
task1()
.then(function(result){
cb(null, result);
})
.catch(function(err){
cb(err);
})
},
job2: function(cb, result1){
task2(result1)
.then(function(result){
cb(null, result);
})
.catch(function(err){
cb(err);
})
},
job3: function(cb, result2){
task3(result2)
.then(function(result){
cb(null, result);
})
.catch(function(err){ …
Run Code Online (Sandbox Code Playgroud) 在您将此问题标记为重复之前,请注意我确实阅读了其他答案,但这并没有解决我的问题.
我有一个Docker撰写文件,包含两个服务:
version: "3"
services:
mysql:
image: mysql:5.7
environment:
MYSQL_HOST: localhost
MYSQL_DATABASE: mydb
MYSQL_USER: mysql
MYSQL_PASSWORD: 1234
MYSQL_ROOT_PASSWORD: root
ports:
- "3307:3306"
expose:
- 3307
volumes:
- /var/lib/mysql
- ./mysql/migrations:/docker-entrypoint-initdb.d
restart: unless-stopped
web:
build:
context: .
dockerfile: web/Dockerfile
volumes:
- ./:/web
ports:
- "3000:3000"
environment:
NODE_ENV: development
PORT: 3000
links:
- mysql:mysql
depends_on:
- mysql
expose:
- 3000
command: ["./wait-for-it.sh", "mysql:3307"]
Run Code Online (Sandbox Code Playgroud)
/网络/ Dockerfile:
FROM node:6.11.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app …
Run Code Online (Sandbox Code Playgroud) 我正在使用Swagger构建高流量API,并正在寻找有关在高流量生产环境中使用Swagger的建议。我的重点是性能和安全性。
我已经看到了在Node项目中实现Swagger的多种方法,其中大量使用两种方法:
1)使用中间件,例如npm-swagger-express-mw和npm-swagger-tools,通过读取兼容Swagger的yaml或JSON文件来拦截路由,验证输入,生成默认错误响应并注册路由。这将与Express一起创建辅助路由抽象层。这是遵循这种模式的“ hello world”示例之一:
https://github.com/ChristianRich/swagger-api-demo
2)使用Swagger仅生成API文档。无需安装任何“ Swagger”,实时应用程序即可正常运行。
有在该领域有经验的人愿意分享一些见解吗?这会在笔或性能测试中引起危险吗?
我对这个查询不太走运,它返回 0 个项目
const { Items } = await this.dynamoDb.query({
TableName: 'exampleTableName',
IndexName: 'createdDateTime-index',
KeyConditionExpression: '#createdDateTime BETWEEN :fromDateTime AND :toDateTime AND #status = :status',
ExpressionAttributeNames: {
'#status': 'status',
'#createdDateTime': 'createdDateTime',
},
ExpressionAttributeValues: {
':fromDateTime': '2017-02-20T01:58:49.710Z',
':toDateTime': new Date().toISOString(),
':status': 'SUCCESS',
},
}).promise();
Run Code Online (Sandbox Code Playgroud)
我在数据库中有一项:
{
"id": "fa47003a-983a-4dc3-a87e-ace73ea7e451",
"createdDateTime": "2018-02-20T02:58:49.710Z",
"status": "SUCCESS"
}
Run Code Online (Sandbox Code Playgroud)
桌子:
aws dynamodb create-table \
--endpoint-url http://localhost:8000 \
--table-name exampleTableName \
--attribute-definitions \
AttributeName=id,AttributeType=S \
AttributeName=status,AttributeType=S \
AttributeName=createdDateTime,AttributeType=S \
--key-schema \
AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=10 \
--global-secondary-indexes \
IndexName=createdDateTime-index,KeySchema=["{AttributeName=status,KeyType=HASH},{AttributeName=createdDateTime,KeyType=RANGE}"],Projection="{ProjectionType=ALL}",ProvisionedThroughput="{ReadCapacityUnits=10,WriteCapacityUnits=10}" …
Run Code Online (Sandbox Code Playgroud) 您能帮我找到一个有用的分步指南还是一个Gist概述,详细介绍了如何配置CircleCI(使用2.0语法)以部署到AWS EC2?
我了解基本要求和动态内容,但是不确定.circleci/config.yml
在deploy
步骤中要在文件中添加什么。
到目前为止,我得到了:
您可以协助CircleCI部署步骤吗?
我需要用Mongoose/Keystone填充两个级别,但是已经遇到了障碍.
我有3个型号:地区,国家和城市.地区包含国家和国家/地区包含城市
我的模特:
型号区域:
var Region = new keystone.List('Region');
Region.add({
name: {type: Types.Text}
, countries: {type: Types.Relationship, ref: 'Country', many: true}
});
Run Code Online (Sandbox Code Playgroud)
模范国家
var Country = new keystone.List('Country');
Country.add({
name: {type: Types.Text}
, cities: {type: Types.Relationship, ref: 'City', many: true}
});
Run Code Online (Sandbox Code Playgroud)
模范城市
var City = new keystone.List('City');
City.add({
name: {type: Types.Text}
});
Run Code Online (Sandbox Code Playgroud)
查询:
keystone.list('Region').model.find()
.populate('countries')
.exec(function(err, regions){
console.log(regions)
});
Run Code Online (Sandbox Code Playgroud)
产量:
{
name: 'Oceania',
countries: [
{
_id: 55d9b260415baa6958ac04c1
name: 'Australia',
cities: [
_id: 55d9b260415baa6958ac04c2,
_id: 55d9b260415baa6958ac04c3,
_id: 55d9b260415baa6958ac04c4
]
}, …
Run Code Online (Sandbox Code Playgroud) 我有一个视频将像素复制到画布并使用web worker应用实时位图过滤器.
使用网络工作者时,我无法在画布上看到结果发生的变化(应该是黑色的'白色).
这是我的代码:http: //www.dev.createdbychristian.com/filter-test/
我可以通过使用中间画布来解决这个问题,但我真的不想那样做.
我的代码松散地基于这个例子,就像我刚刚没有使用web worker进行图像过滤处理一样. http://techslides.com/demos/html5-video-canvas.html
我的代码出了什么问题?
注意:需要一个支持Web Workers和HTML5 Video/canvas的现代浏览器
什么是+符号在这个进口报关表示?
import app from '+/api';
而不仅仅是:
import app from '/api';
导入片段来自使用es6的Node应用程序,该应用程序使用Babel进行转换.
./api/index.js使用导出Express实例 export default app;
我也看过这种语法,使用代字号:
import app from '~/api';
出于学习目的,我将此滚动条转换为常规JavaScript.我只是简单地从脚本编写JQuery(JQuery很棒,但我希望在使用JQuery之前学习原始JavaScript).
这是滚动条代码:
http://jsfiddle.net/PVZB8/139/
我不明白如何将最后几行转换为常规JavaScript:
$('#chatlist').slimscroll({
color: '#000',
size: '8px',
width: '150px',
height: '250px'
});
Run Code Online (Sandbox Code Playgroud)
我假设$('#chatlist')等于document.getElementById('chatlist'),但当然这会失败,因为div元素没有名为'slimscroll'的方法......
我有点理解这些代码行的作用(创建一个新的slimscroll实例并传递一些选项).
如果我们拿出JQuery,这些线条看起来怎么样?如果不使用JQuery,整个脚本会如何显示?
(我知道,如果没有JQuery,脚本的所有方面都不会以类似的方式工作,例如淡入淡出功能)
node.js ×6
javascript ×4
amazon-ec2 ×1
asynchronous ×1
aws-sdk ×1
bluebird ×1
canvas ×1
circleci ×1
docker ×1
ecmascript-6 ×1
express ×1
jquery ×1
keystonejs ×1
logfiles ×1
mongodb ×1
mongoose ×1
mysql ×1
scrollbar ×1
security ×1
swagger ×1
swagger-2.0 ×1
swagger-ui ×1
video ×1