Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 云代码Parse.User.current()返回null_Parse Platform - Fatal编程技术网

Parse platform 云代码Parse.User.current()返回null

Parse platform 云代码Parse.User.current()返回null,parse-platform,Parse Platform,当我在Cloud CodeParse.User.current()中使用此函数时returnnull 我正在使用parseExpressCookieSession登录。 有什么建议吗 var express = require('express'); var expressLayouts = require('cloud/express-layouts'); var parseExpressHttpsRedirect = require('parse-express-https-redirect

当我在Cloud CodeParse.User.current()中使用此函数时returnnull
我正在使用
parseExpressCookieSession
登录。
有什么建议吗

var express = require('express');
var expressLayouts = require('cloud/express-layouts');
var parseExpressHttpsRedirect = require('parse-express-https-redirect');
var parseExpressCookieSession = require('parse-express-cookie-session');

// Required for initializing enter code hereExpress app in Cloud Code.
var app = express();

// Global app configuration section
app.set('views', 'cloud/views');
app.set('view engine', 'ejs'); // Switch to Jade by replacing ejs with jade here.
app.use(expressLayouts);          // Use the layout engine for express
app.set('layout', 'layout');
app.use(parseExpressHttpsRedirect());  // Require user to be on HTTPS.
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('helloworld'));
app.use(parseExpressCookieSession({
  fetchUser: true,
  cookie: { maxAge: 3600000 * 24 }
}));    

Parse.Cloud.beforeSave('Menu', function(request, response) {
    var Business = Parse.Object.extend('Business');
    var query = new Parse.Query(Business);

    query.equalTo('profile', Parse.User.current().get('profile'));
    query.find({
        success: function(business) {
            console.log(business);
            response.success();
        },
        error: function(error) {
            response.error(error.message);
        }
    });
  });

  app.listen();
这是我用来登录/注销的代码

app.post('/login', function(req, res) {
  Parse.User.logIn(req.body.username, req.body.password).then(function(user) {
    // Login succeeded, redirect to homepage.
    // parseExpressCookieSession will automatically set cookie.
    res.redirect('/');
  },
  function(error) {
    // Login failed, redirect back to login form.
    res.redirect('/');
  });
});

// Logs out the user
app.post('/logout', function(req, res) {
  Parse.User.logOut();
  res.redirect('/');
});

这是一个老生常谈的问题,但答案供将来参考

Parse.User.current()在用户登录的客户端(例如WebApp)中使用时,在Javascript SDK中工作,您可以使用该函数获取当前用户

要让用户调用云代码函数或对对象执行操作(beforeSaveafterSavebeforeDelete等等),您可以使用request.user属性,该属性包含发出Parse.com请求的用户

有关Parse.Cloud.FunctionRequest的更多详细信息,请参见此处:

示例代码:

Parse.Cloud.beforeSave('Menu', function(request, response) {
   var requestUser = request.user; 
   // instance of Parse.User object of the user calling .save() on an object of class "Menu"

   // code cut for brevity
});

该链接不再有效,我在任何地方都找不到关于parseExpressCookieSession的文档。该链接已更新,因为Parse更改了他们文档的URL。至于具体的parseExpressCookieSession,您必须联系原始的问题海报,我只是回答了CloudCode和Parse JS SDK中使用的解析用户之间的差异。