小编max*_*max的帖子

nodejs是否容易受时间漂移的影响?

我正在对OAuth身份验证问题(invalid_grant)进行故障排除,其中两个可能原因之一是服务器的时钟与NTP不同步.我确保服务器的时钟是同步的.

nodejs是否实例化自己的时钟或引用系统时钟?

我希望它会引用系统时钟.我只是问,因为重启nodejs暂时修复了问题(invalid_grant),我想排除时间同步.

oauth node.js passport.js

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

从passportjs中的刷新令牌获取oauth访问令牌

要确定何时使用刷新令牌来请求新的访问令牌,我知道两种方法(下面).如果不修改passport-google-oauth库,这些方法中的任何一种都可以吗?

1)"先发制人"方法

  • 在授予访问令牌时,保存访问令牌的到期时间
  • 每当使用访问令牌访问API时,请检查当前时间的到期时间
  • 如果访问令牌未过期,请使用它来访问API
  • 如果访问令牌已过期(或接近过期),请提供刷新令牌以获取新的访问令牌

2)"手柄故障"方法

  • 始终提供访问令牌
  • 如果访问令牌无法进行身份验证,请提供刷新令牌,获取新的访问令牌

谢谢.也欢迎任何替代品.

oauth google-api node.js google-oauth passport.js

7
推荐指数
2
解决办法
7310
查看次数

Grunt usemin无法将rev'd图像路径插入jade partials

我正在使用股票yeoman angular-fullstack生成器 - 执行时会出现此问题grunt serve:dist.图像已成功转动,但更新的图像路径未添加到任何玉视图中.

usemin块:

usemin: {
  html: ['<%= yeoman.dist %>/views/**/*.html',
         '<%= yeoman.dist %>/views/**/*.jade'],
  css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  options: {
    assetsDirs: ['<%= yeoman.dist %>/public']
  }
},
Run Code Online (Sandbox Code Playgroud)

我已经将html目标更改为递归globbing,因为我的大多数jade文件都位于"partials"目录中.但是,一个新的angular-fullstack项目还在partials目录中有jade文件,图像替换工作正常.

文件夹结构 - 源文件:

/app/views/*
/app/images/*
/app/scripts/*
/app/styles/
Run Code Online (Sandbox Code Playgroud)

文件夹结构 - dist文件:

/dist/views/*
/dist/public/images/*
/dist/public/scripts/
/dist/public/styles/
Run Code Online (Sandbox Code Playgroud)

Revving适用于CSS和JS文件,而不是图像.

jade partial中的图像路径示例:

img(src='/images/old_landing/record-landing.png')
Run Code Online (Sandbox Code Playgroud)

如果有任何其他信息有用,请告诉我.

build-system angularjs gruntjs yeoman grunt-usemin

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

Expressjs一个函数来处理GET和POST

是否最好有一个单独的函数来处理同一API端点的GET和POST请求,或者将它们组合成一个根据req.body或req.params的存在进行区分的函数?

即.

app.get('/api/profilepic',  api.get_profilepic);
app.post('/api/profilepic',  api.change_profilepic);
Run Code Online (Sandbox Code Playgroud)

要么:

app.get('/api/profilepic',  api.profilepic);
app.post('/api/profilepic',  api.profilepic);
Run Code Online (Sandbox Code Playgroud)

如果是后者,expressjs是否提供了帮助函数来确定请求类型?到目前为止,我确定req是否为POST的方法需要使用下划线:

if (_.size(req.body) == 0)
Run Code Online (Sandbox Code Playgroud)

connect node.js express

4
推荐指数
2
解决办法
5287
查看次数

Grunt模块将所有静态资产上传到S3 / CloudFront,替换路径并使旧资产失效

使用Grunt,NodeJs和Express,我应该使用哪些模块:

  1. 通过查看资产目录或通过代码库解析,发现应用程序中的所有静态资产(前端JS,CSS,图像)

  2. 将资产上传到Amazon S3 / CloudFront,使用唯一的“指纹”名称重命名每个文件

  3. 将代码库中每个资产的路径替换为CloudFront URL

  4. 使旧的CDN资产无效

这是我第一次使用CloudFront。我不确定是否可以用Grunt完成上述所有操作,或者是否最好将它作为Node / Express模块​​来完成。

使用Rails,我已经读到它像

# Setup amazon CDN
config.action_controller.asset_host = "xxxxxxxxxxxxx.cloudfront.net"
Run Code Online (Sandbox Code Playgroud)

并且我正在寻找类似的Node堆栈解决方案。

amazon-s3 node.js express amazon-cloudfront gruntjs

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

异步 JSON.stringify

如果我有:

fetched_user.settings = null;
fetched_user.settings = JSON.stringify(settings);
$http.post('/api_endpoint', {
  val: fetched_user.settings
});
Run Code Online (Sandbox Code Playgroud)

并且JSON.stringify需要永远执行,那么我的理解val: fetched_user.settings可能是空的,因为这是异步执行的(异步新手检查点:这是正确的吗?)。

通常在这些情况下,我会提供一个在长时间运行的任务完成时执行的回调函数,但是,JSON.stringify() 不提供回调选项。

我应该怎么写这个?

javascript json asynchronous node.js

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