小编Gre*_*reg的帖子

如何在AWS负载均衡器后面运行时强制node.js/express.js为HTTPS

我正在AWS上运行节点/快速服务,并在其前面部署了一个ELB.当我启用启用了SSL的ELB实例时,它适用于我点击的第一个页面,但之后会为每个服务器访问切换到HTTP.

ELB上的路由规则终止SSL并转发到节点正在侦听的端口8080.

SSL终止解决方案适用于我的目的,但如何在HTTPS上保留后续服务器调用?

load-balancing amazon-web-services node.js express

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

RESTful API设计 - 传递日期的最佳实践

在API中共享日期的最佳做法是什么?

是否最好以类似SQL的日期时间格式共享日期 - 'YYY-MM-DD HH:MM:SS',其中嵌入了可选的时区?

或者最好使用基于UTC的毫秒?

api rest datetime

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

是否可以访问同一文件中的其他模块导出功能?

我在同一个文件中有两个函数,都在外部访问.其中一个功能由第二个调用.

module.exports.functionOne = function(param) {
    console.log('hello'+param);
};

module.exports.functionTwo = function() {
    var name = 'Foo';
    functionOne(name);
};
Run Code Online (Sandbox Code Playgroud)

执行此操作时,对functionOne的调用将标记为未定义.

什么是正确的参考方式?

我发现的一种模式是引用文件本身.

var me = require('./thisfile.js');
me.functionOne(name);
Run Code Online (Sandbox Code Playgroud)

......但感觉必须有更好的方法.

javascript node.js

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

REST API设计:在PUT调用期间更改资源标识符是否可以?

我很想知道围绕PUT调用的RESTful设计模式的更多信息.具体来说,我是否通过将资源ID更改为PUT调用的一部分来违反规范?

考虑以下...

POST /api/event/  { ... } - returns the resource ID (eventid) of the new event in the body
GET  /api/event/eventid
PUT  /api/event/eventid   - returns the (possibly new) resource ID depending on request body
GET  /api/event/eventid   - fails if the original eventid was used in the URI
Run Code Online (Sandbox Code Playgroud)

如果eventid表示内部资源(如数据库记录),则GET和PUT的端点可以快速访问资源.如果PUT导致服务器移动底层资源,则ID可以更改.

我这样做时违反了规范吗?

api rest web-services

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

如何让express.js捕获并报告AJAX调用中的运行时异常

我发现当我在express.js中的GET处理程序中遇到运行时错误(例如,从对象中读取未定义的属性)时,Express非常善于在浏览器中向我提供有关问题的反馈以及完整的堆栈跟踪.

但是,当我因Ajax POST调用而遇到运行时错误时,我没有得到相同级别的反馈,并且Node控制台对此事件感到遗憾.

这是Express配置问题吗?

javascript node.js express

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

在github上管理共享存储库上的pull请求的工作流程

我正在尝试管理一个我不拥有但拥有管理员权限的回购请求.当我尝试从另一个fork中提取更改时,它会因错误而失败.这是我的工作流程......

  1. 叉主回购
  2. 在那个分叉中进行更改
  3. 承诺那个分支
    3.5(转到步骤2)
  4. 向主回购提交拉取请求

作为主要仓库的管理员,我试图将这些变化合并如下......

  1. git clone git@github.com:dude/project.git
  2. git checkout -b gtracy-master master
  3. git pull http://gtracy@github.com/gtracy/project.git master

输入密码后,我收到错误消息......

error: The requested URL returned error: 401 while accessing 
http://gtracy@github.com/gtracy/project.git/ifno/refs
Run Code Online (Sandbox Code Playgroud)

这个工作流程错了吗?有没有更简单的方法来管理我自己的拉取请求?

谢谢!

git version-control github

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

在 app.yaml 文件中混合静态和动态端点

我正在尝试描述我的 App Engine 应用程序中的端点,但对于混合静态和动态内容的目录结构遇到困难。但我的 yaml 规则相互冲突。在我更改目录结构之前,有人有建议吗?

目标是创建一个包含文档(静态 html 文件)和实现的目录。

/api
  - /v1
    - getitdone.py
  - doc.html
  - index.html
Run Code Online (Sandbox Code Playgroud)

我认为我应该对我的应用程序 yaml 做什么......

- url: /api/v1/getitdone
  script: api/v1/getitdone.py

- url: /api/
  static_files: api/index.html
  upload: api/index.html  

- url: /api
  static_dir: api
Run Code Online (Sandbox Code Playgroud)

但这会导致动态端点失败。我假设static_dir参考文献正在破坏它。如何在不描述每个脚本和静态文件引用的情况下执行此操作(我有比此处列出的更多的脚本和静态文件引用)?

google-app-engine yaml

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

使用cron和任务队列引入时间随机性

我正在寻找一些工程创意来解决Google App Engine上的问题.

我有少量定期运行的作业,但我希望这些作业能够随机执行.因此,我不希望每周二下午2点开始工作,而是希望每周二"下午2点到下午5点之间"运行.

目前,我正在使用以下算法......

  1. Cron工作每周二下午2:00运行
  2. cron处理程序查找要运行的特定作业的列表,并为每个离散任务创建任务队列事件.
  3. 相应的任务队列处理程序通过在1和N之间选择一个随机数来决定它是否应该实际运行.如果随机数是X,则执行该作业.否则,它会创建一个新的任务队列事件以再次尝试.每个任务都有最大队列尝试次数,以保证作业在某个时刻实际完成.

我已经意识到另一个解决方案是创建一个速度非常慢的任务队列,当cron作业填满队列时,它会在执行此操作之前随机重新排序任务列表.

App Engine用户的任何想法?

google-app-engine scheduled-tasks

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

Node.js数据使用Buffer解析原始字节

我正在尝试使用Buffer来解析以奇数方式格式化的29个字节的数据.我一直在使用slice()方法来分割这些奇数边界上的数据.示例流在十六进制中看起来如下所示(为清晰起见添加了空格)...

01 1d 00 00 01 0a 0a 0b 0b 0c 0c 00 00 04 d2 00 00 00 0e c8 00 00 00 00 00 00 00 cc c4

var raw = '011d0000010a0a0b0b0c0c000004d20000000ec800000000000000ccc4';
buff = new Buffer(raw, 'utf8');
var position = 2;

// message type
var msg_type = buff.slice(position,(position+1)).toString();
position += 1;
console.log('... message type is ' + msg_type);

// event type
var event_type = buff.slice(position,(position+1)).toString();
position += 1;
console.log('... event type is ' + event_type);

// grab more …
Run Code Online (Sandbox Code Playgroud)

javascript parsing node.js

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

模型的findOne方法上的Mongoose TypeError

在一些旧代码中出现了以下TypeError.

TypeError: Object #<Object> has no method 'findOne'
Run Code Online (Sandbox Code Playgroud)

最近受影响的模型定义了两个新的静态方法,这些方法引用了外部模型.在退出新的静态方法之后,我能够确定外部模型的require语句的根本原因.该模式如下所示:

var UserModel = require('./user');

var GroupSchema = new Schema({
    name: String,
    users: [{ type : Schema.ObjectId, ref: 'UserModel'}],
});

GroupSchema.statics.findSomeUsers = function(group, callback) {
    this.find({name : session_user._id}, function(err, groups) {
        UserModel.find({_id : {$in : group.users}}, function(err,patients) {
            // do magic
        });
    });
};

module.exports = mongoose.model('GroupModel', GroupSchema);
Run Code Online (Sandbox Code Playgroud)

应用程序中有一个代码片段调用GroupModel.findOne({name:'gogo'}),导致TypeError.当我在GroupSchema中删除UserModel的require语句时,应用程序代码再次起作用.

为什么Javascript开始认为findOne()是一个添加了require语句的实例方法?

javascript mongoose node.js

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