小编Geo*_*ker的帖子

passport.session()中间件有什么作用?

我正在使用Passport.js使用Easy Node Authentication:Setup and Local教程构建一个身份验证系统.

我很困惑passport.session().

在使用不同的中间件后,我开始明白这express.session()是通过cookie向客户端发送会话ID的内容,但我很困惑passport.session()除了之外需要什么以及为什么需要它express.session().

以下是我设置应用程序的方法:

// Server.js配置应用程序并设置Web服务器

//importing our modules
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');

var configDB = require('./config/database.js');

//Configuration of Databse and App

mongoose.connect(configDB.url); //connect to our database

require('./config/passport')(passport); //pass passport for configuration

app.configure(function() {

    //set up our express application

    app.use(express.logger('dev')); //log every request to …
Run Code Online (Sandbox Code Playgroud)

authentication session node.js express passport.js

108
推荐指数
4
解决办法
7万
查看次数

JavaScript似乎不等待返回值

我一直在努力解决这个问题.我是Javascript的新手,并且一直认为我写的代码已经异步运行了.这是一个通用的例子:

我在函数a中运行了一些代码.函数A然后调用函数B,函数B需要将变量返回给A,因此A可以在以后的操作中使用它.看来,当A调用B时,它仍然继续运行自己的代码,而不是等待其返回值被阻塞,并且B不够快,使得A最终到达需要使用返回的点值,我得到一个未定义的变量类型错误.

我解决这个问题的方法是函数A调用函数B然后调用一个函数C,它将执行A将使用返回值执行的后续操作....我有点通过调用序列化我的代码而不是返回......虽然很麻烦......

以下是在实际代码中发生的示例:

function initialize() {
    //Geocode Address to obtin Lat and Long coordinates for the starting point of our map
    geocoder = new google.maps.Geocoder();
    var results = geocode(geocoder);
    makeMap(results[0].geometry.location.lat(), results[0].geometry.location.lng());

}

function geocode(geocoder) {
    //do geocoding here...

    var address = "3630 University Street, Montreal, QC, Canada";
    geocoder.geocode({ 'address': address }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
           return results;
            }
         else {
            alert("Geocode was not successful for the following reason: " + status);
        } …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous callback asynccallback

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

使用Passport进行身份验证后创建新会话

我用护照创建了一个简单的身份验证应用程序(参见下面的代码).通过会话中间件快速,在请求客户端尚未拥有会话的每个请求上创建会话.我想在登录后分配会话,或者在登录后创建新会话.

这是因为我最终将通过HTTPS进行登录,并希望防止黑客劫持已经过身份验证的用户的会话.

这是我的服务器代码:

// Server.js configures the application and sets up the webserver

//importing our modules
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');
var MongoStore = require('connect-mongo')(express);

var configDB = require('./config/database.js');

//Configuration of Databse and App

mongoose.connect(configDB.url); //connect to our database

require('./config/passport')(passport); //pass passport for configuration

app.configure(function() {

    //set up our express application

    app.use(express.logger('dev')); //log every request to the console
    app.use(express.cookieParser()); …
Run Code Online (Sandbox Code Playgroud)

authentication session node.js passport.js

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

使用外部 JavaScript 文件的良好实践

我是 JavaScript 新手。

我应该如何在外部脚本之间拆分我的函数?什么被认为是好的做法?我应该将所有函数都塞进一个外部.js文件中还是应该将类似的函数分组在一起?

我猜想更多的文件意味着更多的 HTTP 请求来获取脚本,这可能会降低性能?然而,更多的文件使事物变得井井有条:例如,onload.js在加载时初始化事物、data.js从服务器检索数据、ui.js引用 UI 处理程序......

专业人士对此有何建议?

谢谢!

javascript

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

何时使用 Kruskal 算法与 Prim 算法

可能的重复:
克鲁斯卡尔 vs 普里姆

你什么时候会使用 Kruskal 算法而不是 Prim 算法来找到最小生成树?哪种输入图和节点更适合每种类型?在什么情况下,在空间和时间方面使用其中之一更有效?

他们的特定输入是否使一个比另一个好得多?

algorithm graph prims-algorithm kruskals-algorithm

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