将表数据导出到流星中的excel

时间:2014-11-20 06:07:36

标签: javascript html meteor

在我的应用程序中,起始网址localhost:3000将我带到登录页面,登录后,现在每个工作正常都需要/afterlogin,一旦我删除/afterlogin并输入它将需要再次登录页面如何在登录后阻止该URL并留在流星的主页中?

2 个答案:

答案 0 :(得分:1)

而不是使用/作为用户登录的URL,而不是" Meteor.js"要做的是在主模板中使用条件逻辑为您的网站的目标网页。 Accounts的Meteor文档解释了应用程序应该:

  

使用{{#if currentUser}}检查用户是否已登录。

查看login example application,了解{{#if currentUser}}在实践中的应用方式。为方便起见,我已复制下面的模板:

<template name="main">
  {{#if loggingIn}}
    <div class="loading">Loading...</div>
  {{else}}
    {{#if currentUser}}
      <div class="msgDiv">
        Signed in as: {{currentUser.services.google.email}}
      </div>
      <a href="#" id="logout">Sign out</a>
    {{else}}
      <a href="#" id="login">Sign In With Google</a>
    {{/if}}
  {{/if}}
  <div class="msgDiv">
    Client can see {{numGizmos}} gizmos.
  </div>
</template>

在&#34; main&#34;模板,您可以看到应用程序使用Spacebars来检查以下条件:

  • 如果loggingIn为真(用户正在登录),则显示加载屏幕
  • 如果loggingInfalsecurrentUsertrue(用户已登录),则显示包含已登录用户信息的屏幕< / LI>
  • 如果loggingInfalsecurrentUserfalse(用户尚未登录),则会显示登录提示

注意:在此示例应用程序中,它们使用accounts-google身份验证包演示登录,但您可以对基于accounts-password的基本登录使用相同的模式。其他身份验证包包括accounts-facebookaccounts-githubaccounts-twitter和社区包。

如果您在应用程序中使用iron:router,那么您还可以使用以下逻辑保护应用程序URL(从文档中获取):

Router.onBeforeAction(function() {
  if (! Meteor.userId()) {
    this.render('login');
  } else {
    this.next();
  }
});

答案 1 :(得分:0)

第一步从npm下载“alasql、XLSX、moment”包//meteor npm install alasql

步骤 2 将 alasql 、 XLSX 和 moment 导入我们必须创建 excel 的文件形式

            import alasql from 'alasql';
            import XLSX from 'xlsx';
            import moment from "moment";

            alasql.utils.isBrowserify = false;
            alasql.utils.global.XLSX = XLSX;

步骤 3 在同一个文件中通过调用该方法从服务器获取数据

          Meteor.call('getAllUserData', function ( err,userData ) { //get data form server call
        
            if ( !_.isEmpty( userData ) )
            {
                var opts = [
                    {sheetid:'User List',header:true}
                ];
                alasql('SELECT INTO XLSX("User-List-'+moment(new Date()).format('DD-MM-YYYY')+'.xlsx",?) FROM ?',
                    [opts,[
                        userData
                    ]]);
            }
        })