小编exi*_*onX的帖子

Angular 4 - 在每个请求中设置withCredentials - cors cookie

我的角度客户端与后端分离,我在后端启用了cors,一切正常,但我的身份验证失败,因为cookie没有添加到请求中.

在线搜索后,我发现我应该设置{withCredentials : true}每个http请求.我设法在一个请求上执行它并且它可以工作,但不是在所有请求上.

我尝试使用BrowserXhr 如何在Angular2中的所有请求的请求标头中发送"Cookie"?但它不起作用,它也被弃用了.

我也尝试过RequestOptions但它没有用.

如何在每个http请求中设置{withCredentials:true}?

后来编辑:

@Injectable()
export class ConfigInterceptor implements HttpInterceptor {

  constructor(private csrfService: CSRFService) {

  }

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    let token = this.csrfService.getCSRF() as string;
    const credentialsReq = req.clone({withCredentials : true, setHeaders: { "X-XSRF-TOKEN": token } });
    return next.handle(credentialsReq);
  }
}
Run Code Online (Sandbox Code Playgroud)

cookies http cors oauth-2.0 angular

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

节点js - Socket.io-client未连接到socket.io服务器

我正在尝试使用以下代码连接到socket.io-client:

服务器:

// Load requirements
var http = require('http'),
    io = require('socket.io');

// Create server & socket
var server = http.createServer(function(req, res){

    // Send HTML headers and message
    res.writeHead(404, {'Content-Type': 'text/html'});
    res.end('<h1>Aw, snap! 404</h1>');
});
server.listen(8080);
io = io.listen(server);

// Add a connect listener
io.sockets.on('connection', function(socket) {

    console.log('Client connected.');

    // Disconnect listener
    socket.on('disconnect', function() {
        console.log('Client disconnected.');
    });
});
Run Code Online (Sandbox Code Playgroud)

客户:

console.log('1');

// Connect to server
var io = require('socket.io-client')
var socket = io.connect('localhost:8080', {reconnect: true});

console.log('2');

// Add a connect …
Run Code Online (Sandbox Code Playgroud)

websocket node.js socket.io

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

Mongoose一次删除多个数据

我有一个很大的id列表,我想从mongodb中删除多个模型,主要思想是我对多个模式中的文档具有相同的id,我想从每个模型中删除一个文档.我是这样做的:

_.each(wrongList, function(item) {
        UPUSTP.find({id: item.id}).remove(function(err) {
            if (err)
                console.log("Error while deleting " + err.message);
        })

        UPUANAM.find({id: item.id}).remove(function(err) {
            if (err)
                console.log("Error while deleting " + err.message);
        })

        UPUEXE.find({id: item.id}).remove(function(err) {
            if (err)
                console.log("Error while deleting " + err.message);
        })

        UPUEXO.find({id: item.id}).remove(function(err) {
            if (err)
                console.log("Error while deleting " + err.message);
        })

        UPUPROC.find({id: item.id}).remove(function(err) {
            if (err)
                console.log("Error while deleting " + err.message);
        })
    })
Run Code Online (Sandbox Code Playgroud)

问题是我有14000+个ID wrongList并且查询有效但是需要花费很多时间才能完成...我怎样才能增加删除的时间?我可以批量删除或类似的东西吗?

mongoose mongodb node.js

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

Express 4.x压缩

我使用Google的PageSpeed chrome扩展程序测试了我的本地网络服务器.其中一个结果是我的Web服务器没有启用压缩.我使用快速4.x在后端使用节点js.我用谷歌搜索了一下压缩数据的解决方案,我发现https://github.com/expressjs/compression是一个用于表达的中间件.我试着像这样使用它:

    var app                 = express();
    var compression         = require('compression');
    var server              = http.createServer(app);
    server.listen(CONFIG.PORT);
    app.use(compression());
Run Code Online (Sandbox Code Playgroud)

即使我做了这个页面,速度仍然建议压缩数据.我究竟做错了什么?

compression node.js express

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

在 flutter 中使用 Google 地图(适用于移动设备和网络)

我正在开发一个 flutter 应用程序,该应用程序应该有一个适用于网络和移动设备的通用代码库。

我的应用程序将有一个谷歌地图,据我所知,没有一个包可以满足所有平台。

google_maps_flutter - seems to work only for mobile (IOS / Android)
google_maps_flutter_web - seems to work only for web
Run Code Online (Sandbox Code Playgroud)

因此,很可能我必须使用这些单独的包创建两个单独的 MapWidget,一个用于网络,一个用于移动设备。

对于移动设备:

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class MapSample extends StatefulWidget {
  MapSample({Key? key}) : super(key: key);

  @override
  State<MapSample> createState() => MapSampleState();
}

class MapSampleState extends State<MapSample> {
  final Completer<GoogleMapController> _controller = Completer();

  static const CameraPosition _kGooglePlex = CameraPosition(
    target: LatLng(37.42796133580664, -122.085749655962),
    zoom: 14.4746,
  );

  @override
  Widget build(BuildContext context) {
    return GoogleMap(
      mapType: MapType.hybrid,
      initialCameraPosition: …
Run Code Online (Sandbox Code Playgroud)

google-maps flutter flutter-web google-maps-flutter

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

Haskell调试

如何在每次调用时打印haskell中的列表或内容,例如:

funct a list = funct (a + 1) (a : list) 
               print list here ??????? but how ? 
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

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

Python线程和信号量

我有一个python类,我们称之为AClass,另一个是MyThread,它扩展了Thread.在那个AClass我创建MyThread类的2个对象,我也有一个信号量,我将它作为参数提供给MyThread类的构造函数.我的问题是,如果我修改一个MyThread对象中的信号量,另一个MyThread对象会看到差异吗?例如:

class AClasss:

     def function: 
          semafor = threading.Semaphore(value=maxconnections)
          thread1 = Mythread(semafor)
          thread2 = Mythread(semafor)
          thread1.start()
          thread1.join()
          thread2.start()
          thread2.join()

 class MyThread(Thread):
     def __init__(self,semaphore):
         self.semaphore = semaphore
     def run():
        semaphore.acquire()
        "Do something here" 
        semaphore.release()
Run Code Online (Sandbox Code Playgroud)

那么thread1是否看到了thread2所做的信号量变化,反之亦然?

python python-multithreading

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

Angular js 观看会话存储

我有一些来自不同控制器的数据,这些数据使用https://github.com/fredricrylander/angular-webstorage存储在 sessionStorga 中。数据存储正常并且在当前会话中可用。我面临的问题是制作一个控制器来观察 webstorage.session 中的变化,我是这样做的:

app.controller(
    'updateDataController',
    ['$scope','$http','$sce','$location','$routeParams', '$rootScope', '$document', 'webStorage', '$interval', 'md5',
        function($scope,$http,$sce,$location,$routeParams, $rootScope, $document, webStorage, $interval, md5) {

            $scope.mySessionStorage = webStorage.session;

            $scope.$watch('mySessionStorage', function (newVal, oldVal) {
                 console.log("The web storage has changed");
            }, true);

        }
    ]);
Run Code Online (Sandbox Code Playgroud)

我只得到一次 console.log 输出。即使我更改了 webStorage.session 的内容,我也没有收到任何日志。可能是什么问题呢?

javascript session-storage web-storage node.js angularjs

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

flutter redux 中处理异步事件的最佳方法

在开始使用 flutter 和 redux 构建应用程序时,我遇到了以下问题:处理网络请求或任何异步操作的最佳方法是什么?

上下文:当请求完成时,进行异步调用以从服务器端获取字符串(在我的例子中只是 Future.delayed),更新状态并查看视图中的更改。

第一种方法:

创建一个具有异步调用函数的中间件类,该函数将在调用 NextDispacther 完成后等待异步事件完成,并使用将在减速器中处理的新操作

 class UserTypeMiddleware extends MiddlewareClass<AppState> {

      @override
      void call(Store<AppState> store, action, NextDispatcher next) async{
        if (action is GetTitleAction) {
          String title = await Future<String>.delayed(Duration(seconds: 2), () {
            return "This is a title ";
          });
          next(UpdateTitleAction(title));
        } else {
          next(action);
        }
      }

    }
Run Code Online (Sandbox Code Playgroud)

第二种方法:

创建一个 typedMiddleware 做同样的事情,但它通过 store.dispatch 调度操作

TypedMiddleware<AppState, GetTitleAction> userTypeMiddleware() =>
    TypedMiddleware<AppState, GetTitleAction>(_getTitle);

Future _getTitle(Store<AppState> store, GetTitleAction action, NextDispatcher next) async {
  String title = await Future<String>.delayed(Duration(seconds: 2), () …
Run Code Online (Sandbox Code Playgroud)

redux flutter flutter-redux

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

从nodejs调用firebase云函数

我想从另一个 NodeJS 服务器或只是一个 NodeJS 脚本调用 Firebase 的云函数。

我的 firebase 函数是 onCall 函数。

我正在使用https://www.npmjs.com/package/firebase-admin与 firebase 交互,但它似乎没有调用云函数的方法...

我可以用其他方式做吗?比如http请求?

node.js firebase google-cloud-functions firebase-admin google-cloud-firestore

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