我正在使用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"
我试图使用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.
任何帮助将不胜感激.
我不确定这是否可行,但我想使用多种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) 我正在尝试使用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)
当我运行它时,数据库会被创建,但它们是空的.任何帮助将不胜感激.
我已经看过很多关于如何在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 ×4
node.js ×4
passport.js ×2
arrays ×1
csv ×1
express ×1
http-put ×1
mongodb ×1
oauth-2.0 ×1