小编Mon*_*757的帖子

Node.js - 带有'request'模块的PUT

我正在使用Node.js中的请求模块来执行put请求.我的代码看起来像这样

var request = require('request');
var data = {foo: "bar", woo: "car"};

request({
   method: 'PUT',
   uri: myURL,
   multipart: [{
       'content-type':'application/json',
       body: JSON.stringify(data) 
   }]
}, function(error, request, body){
   console.log(body);
});
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到一个错误:

"不支持的内容类型:application/json"

javascript http-put node.js

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

Passport - Node.js没有返回刷新令牌

我试图使用node.js的passport模块返回一个refreshToken.但是我使用下面的代码,我无法记录任何刷新令牌,但访问令牌工作正常.有没有办法为这个模块指定脱机访问类型,希望能够返回这个?

var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
 passport.use(new GoogleStrategy({
 clientID: GOOGLE_CLIENT_ID,
 clientSecret: GOOGLE_CLIENT_SECRET,
 callbackURL: "http://myurl/auth/callback"
 },
 function(accessToken, refreshToken, profile, done) {                                                            
  console.log(refreshToken);
  process.nextTick(function () {
      return done(null, [{token:accessToken}, {rToken:refreshToken}, {profile:profile}]);
  });
}
));
Run Code Online (Sandbox Code Playgroud)

这会将refreshToken返回为undefined.

任何帮助将不胜感激.

javascript node.js oauth-2.0 passport.js

19
推荐指数
2
解决办法
4748
查看次数

Nodejs Passport - 使用多个Google策略

我不确定这是否可行,但我想使用多种Google策略,以便根据链接/用户使用不同的范围集.

我创建了两个独立的护照变量:

 passport = require('passport')
 passport2 = require('passport')
Run Code Online (Sandbox Code Playgroud)

我已将它们设置如下:

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: "http://localhost:3000/auth/callback"
},
  function(accessToken, refreshToken, profile, done) {
    // asynchronous verification, for effect...                                                                    
    process.nextTick(function (){

      // Changing this to return the accessToken instead of the profile information                                
        console.log(profile.displayName);                                                                        

      return done(null, [{token:accessToken,rToken:refreshToken,'profile':profile}]);
    });
  }
));


passport2.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: "http://localhost:3000/join/callback"
  },
  function(accessToken, refreshToken, profile, done) {
    // asynchronous verification, for effect...                                                                    
    process.nextTick(function (){

      // Changing this to return the accessToken instead of the …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express passport.js

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

使用NodeJS从CSV填充MongoDB

我正在尝试使用CSV文件中的数据填充MongoDB.我的MongoDB中当前没有数据库或集合,我想使用更新函数创建这些数据库或集合,该函数创建从csv文件解析的对象.

我正在使用ya-csv来解析我的csv文件和节点的mongodb驱动程序.

我的代码看起来像这样:

var csv = require('ya-csv');
var fs = require('fs');
var MongoClient = require('mongodb').MongoClient;
var Server = require('mongodb').Server;
var mongoclient = new MongoClient(new Server('localhost', 27017, {'native_parser' : true}));

var reader = csv.createCsvFileReader('YT5.csv', {columnsFromHeader:true,'separator':   ','});
reader.addListener('data', function(data){
var nameHolder = data.name;
//I have no issue getting the needed variables from my csv file
mongoclient.db(nameHolder).collection('assets').update({assetId:data.assetId,name:data.name},{upsert:true},function(err,updated){if(err){console.log(err)}});

reader.addListener('end', function(data){
console.log("done");
}
Run Code Online (Sandbox Code Playgroud)

我没有为此创建数据库或集合,但它可以通过此更新为我执行此操作吗?我收到一个错误:

[Error: Connection was destroyed by application]
Run Code Online (Sandbox Code Playgroud)

当我运行它时,数据库会被创建,但它们是空的.任何帮助将不胜感激.

csv mongodb node.js

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

JavaScript - 比较两个数组

我已经看过很多关于如何在JavaScript中比较两个数组的帖子,如果你找到匹配的话就做点什么.我想知道如何写相反的东西.我有两个阵列,当我找不到匹配时我想做点什么.

var a = [1,2,3,5];
var b = [4,7,5,5];


for(i=0;i<a.length;i++){
    for(j=0;j<b.length;j++){
       if(b[j]===a[i]){
          //do something
       }
   }
 }

 //somehow return 4, 7
Run Code Online (Sandbox Code Playgroud)

基本上,我想找到与上述相反的方法.如果我找不到比赛,我想表演一个动作.我的其他声明会在哪里?

   loop1:                                                                                          
        for(var i=0;i<a.length;i++){                                                                                                                        
            loop2:                                                                                        
            for(var j=0;j<b.length;j++){                                                                         
                if(b[j]==a[i]){                                          
                    console.log("break loop");                                                            
                    break loop2;                                                                          
                }                                                                                         
                else{                                                                                     
                    continue loop1;                                                                              
                }                                                                                         
            }                                                                                             
        }
Run Code Online (Sandbox Code Playgroud)

就我而言,我是否走在正确的轨道上?

javascript arrays

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