小编Tra*_*Guy的帖子

使用XDebug跟踪PHP Web服务页面

我正在使用Eclipse和XDebug开发一个依赖于Web服务的PHP应用程序.我有两种方式使用我的服务的测试页面:AJAX(使用jQuery)和cURL.

我将断点添加到服务页面并启动调试器.当我从AJAX调用服务时,执行在断点处很好地停止,我得到了我的变量,逐步控制等.

但是当我使用cURL调用服务时(即在PHP页面内),断点无法正常工作.即使我打开"Break at first line"调试器选项,我也无法在使用cURL时停止执行.

它是调试器行为吗?我是否需要在cURL电话中添加听筒?改变URL?或者它是XDebug限制?

谢谢你的时间和精力,盖伊

php eclipse debugging curl xdebug

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

在节点中将UUID转换为/从二进制转换

我工作的项目切换到了MySQL.我们使用的密钥是UUID字符串(如43d597d7-2323-325a-90fc-21fa5947b9f3),但数据库字段(而不是字符串)被定义为二进制(16) - 16字节无符号二进制.

我知道UUID基本上是一个16字节的二进制文件,但我不知道如何从/转换为二进制数.

我正在使用node-mysql来访问数据库,我尝试使用node-uuid来解析UUID,但这会产生一个整数数组.我也尝试过使用Node的缓冲区,但这只会产生一个缓冲区对象.

如何将UUID字符串转换为适合该字段?如何将我从该字段读取的值转换为UUID?

javascript mysql node.js

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

有没有办法在 Github README.md 中添加指向当前存储库的链接?

我的大部分 repos 的 README.md 文件都包含有关如何克隆/构建/运行/测试代码的说明:

$ git clone https://github.com/TravelingTechGuy/app-store-validator.git
$ cd app-store-validator
$ npm i
$ npm run build    #lint and build
$ npm run test     #run unit tests
Run Code Online (Sandbox Code Playgroud)

问题是链接是特定于存储库的,即如果存储库已分叉/转移,自述文件仍将包含指向我原始存储库的链接。我遇到了至少一个案例,有人分叉了一个 repo,然后复制/粘贴了安装说明,但不明白为什么不存在更改。

我的问题:有没有办法在 README 文件中添加指向当前repo的链接?这样当克隆时,会指向克隆的回购吗?

git github readme

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

Amazon S3 只写访问

我将多个客户的文件直接备份到 Amazon S3 存储桶中 - 每个客户都备份到不同的文件夹。我正在使用一个简单的 .Net 客户端,每晚在 Windows 任务下运行一次。为了允许写入存储桶,我的客户需要 AWS 访问密钥和秘密密钥(我创建了一个新密钥对)。

我的问题是:

  1. 我如何确保我的客户没有可能使用这对工具查看存储桶和非他自己的文件夹?我可以创建“只写”访问对吗?

  2. 我是否以正确的方式接近这个?这应该通过 AWS 访问设置来解决,还是应该在上传之前客户端加密客户机器上的文件(每个客户使用不同的密钥)并避免上述交叉访问?

permissions amazon-s3 amazon-web-services

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

使用express时查找EJS视图中的当前URL

我正在使用Express和EJS来提供页面.我正在使用Bootstrap作为UI,特别是导航栏.

我想'active'在当前页面的<li>项目中添加一个类,以显示当前页面.但是,我无法找到如何从呈现页面的EJS代码中获取URL.

我找到了2个解决方法:我使用包括将页面名称作为路由中的参数传递res.render('myview', {pageName: 'myView'});- 这是不可扩展的,可能会导致问题.

另一种方法是在客户端使用jQuery 'active'在页面准备好时将类添加到项目中 - 但这意味着在每个视图中包含这段脚本+一些无用的客户端循环.

之前使用过多种服务器端渲染语言,我觉得我错过了一些东西.在线EJS文档并不是那么好.

有没有办法从EJS代码中找到我当前的路径/ url?

更新: 我获取了前2个建议,并将视图名称作为参数传递给视图.我真的很喜欢@tandrewnichols的想法来自动计算它,但最终,复制粘贴字符串更容易:)

javascript ejs node.js express

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

如何在Express中获取POST字段,而不使用bodyParser中间件?

对于最新版本的Express,建议(通过调试消息传达)是停止使用bodyParser中间件.我读了一下,它看起来像bodyParser是一个包装到jsonurlencoded中间件-你瞧,最近快递(3.4.4)的版本使用这2代替的bodyParser开箱-灿烂的,对不对?

但现在,我无法到达我的田地.req.body未定义.这是我的JS表单提交代码(仅限文本字段,无文件).有人可以告诉我,req我使用哪个属性/功能来获取值?

var formData = new FormData($('#myForm')[0]);
$.ajax({
    url: '/myurl',
    cache: false,
    contentType: false,
    processData: false,
    data: formData,
    type: 'POST',
    success: function(data) {
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.error('Error occured: ' + errorThrown);
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript middleware node.js express

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

如何为Passport策略callbackURL设置当前主机?

我使用Passport-Linkedin策略为Passport with Express,允许用户使用他们的LinkedIn个人资料登录.

我有以下代码:

passport.use(new LinkedInStrategy({
    consumerKey: config.linkedin.LINKEDIN_API_KEY,
    consumerSecret: config.linkedin.LINKEDIN_SECRET_KEY,
    callbackURL: "http://localhost:3000/auth/linkedin/callback"
  },
  function(token, tokenSecret, profile, done) {
    // asynchronous verification, for effect...
    process.nextTick(function () {

      // To keep the example simple, the user's LinkedIn profile is returned to
      // represent the logged-in user.  In a typical application, you would want
      // to associate the LinkedIn account with a user record in your database,
      // and return that user instead.
      return done(null, profile);
    });
  }
));
Run Code Online (Sandbox Code Playgroud)

在第4行,我必须手动设置完整的回调URL.我有一个用于生产的字符串和一个用于开发的字符串,但我的URL不断变化,端口也是如此(我使用2台机器进行开发).

如何http://localhost:3000自动设置URL()的第一部分?有没有的属性 …

javascript node.js express passport.js

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

Chrome扩展程序安装错误消息

我构建了一个小型Chrome扩展程序 - 它显示了您的IP和地理位置信息.我测试了几次,将其打包(使用Grunt)并上传到Chrome网上商店.我几次验证了生成的zip文件包含app +清单所需的所有文件.

然后我删除了我的本地版本,并尝试从网上商店安装.即使刷新后,我仍然会收到此错误,并多次重新启动浏览器:

"将此项目添加到Chrome时出现问题.请刷新页面然后重试."

在此输入图像描述

我该如何调试/解决这个问题?

更新:

查看JS控制台,每次按下安装按钮时都会看到错误:

webstorePrivate.beginInstallWithManifest3:无效的清单

没有进一步的信息,对我来说清单文件看起来没问题(它在本地加载时有效).

javascript manifest google-chrome-extension

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

使用Istanbul和Mocha来覆盖ES6代码

我有用ES6编写的Node代码,我通过发布测试mocha --harmony.测试很好 - 一切正常.

现在我想添加coverage和istanbul,但是我遇到了第一个箭头函数的错误:

No coverage information was collected, exit without writing coverage information
c:\Users\Guy\Code\alpha-dev\tests\helpers.js:12
    setTimeout(() => {
                ^
SyntaxError: Unexpected token )
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Module._extensions..js (module.js:478:10)
    at Object.Module._extensions..js (c:\Users\Guy\Code\alpha-dev\node_modules\istanbul\lib\hook.js:101:13)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

  1. 安装伊斯坦布尔和谐(来自git://github.com/gotwarlost/istanbul.git#harmony)作为我的开发依赖.
  2. 运行以下命令: "./node_modules/.bin/istanbul" cover "./node_modules/mocha/bin/_mocha" -- --harmony tests -R spec
  3. 伊斯坦布尔和_mocha旗帜的组合

我如何运行istanbul来涵盖使用ES6功能编写的测试?我错过了什么?

code-coverage mocha.js node.js ecmascript-6 istanbul

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

如何在 Docker 内运行 Sequelize 迁移

我正在尝试将我的 NodeJS API 与 MySQL 映像一起 docerize。在初次运行之前,我想运行 Sequelize 迁移和种子,以准备好表并准备好提供服务。

这是我的docker-compose.yaml

version: '3.8'
services: 
  mysqldb:
    image: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_USER: myuser
      MYSQL_ROOT_PASSWORD: mypassword
      MYSQL_DATABASE: mydb
    ports:
      - '3306:3306'
    networks:
      - app-connect
    volumes: 
      - db-config:/etc/mysql
      - db-data:/var/lib/mysql
      - ./db/backup/files/:/data_backup/data
  app:
    build:
      context: .
      dockerfile: ./Dockerfile
    image: node-mysql-app
    depends_on:
      - mysqldb
    ports:
      - '3030:3030'
    networks:
      - app-connect
    stdin_open: true
    tty: true
volumes: 
  db-config:
  db-data:
networks:
  app-connect:
      driver: bridge
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序Dockerfile

FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm …
Run Code Online (Sandbox Code Playgroud)

mysql node.js sequelize.js docker docker-compose

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