Node.js 从节点_模块获取变量

Node.js 从节点_模块获取变量,node.js,express,node-modules,keystonejs,Node.js,Express,Node Modules,Keystonejs,我正在尝试从node_模块获取一个变量到我的应用程序。我已经用module.exports导出了它,但是当我使用require'path/of/required/file/in/node_modules'时,它会显示“意外令牌导入”。我试图从节点_模块获取用户信息,因为keystone没有获取用户数据的官方策略 我的本地文件 节点模块文件 1由于当前JavaScript环境不支持import语句,可能发生意外的令牌导入错误;您试图从Keystone节点模块导入的代码在正常使用之前会被传输。当Ke

我正在尝试从node_模块获取一个变量到我的应用程序。我已经用module.exports导出了它,但是当我使用require'path/of/required/file/in/node_modules'时,它会显示“意外令牌导入”。我试图从节点_模块获取用户信息,因为keystone没有获取用户数据的官方策略

我的本地文件

节点模块文件


1由于当前JavaScript环境不支持import语句,可能发生意外的令牌导入错误;您试图从Keystone节点模块导入的代码在正常使用之前会被传输。当Keystone使用该组件时,这不是问题。但是,如果将React组件导入到非React文件中,则肯定会出现问题。这引出了我的下一个问题:


2您的代码中根本没有使用UserInfo。您不能仅使用Keystone的React组件来显示用户信息,除非您在React环境中工作,而该环境看起来与您不同。您使用此组件的用例是什么?

由于无法在KeystoneJS中实现协同管理部分,因此我可以公开一些管理仪表板模型,因此我想获取用户信息并提供一个案例,例如如果userName==so和so{Show this model}否则{Hide the model}我可以从中间件获取user.name并将其导出到我的模型吗?
var keystone = require('keystone');
Teaching = keystone.list('teaching');
UserInfo = require('../../node_modules/keystone/admin/client/App/components/Footer/index.js').footer;
User = keystone.list(keystone.get('user model'));
console.log(User);
exports = module.exports =function(req,res){
    var view = new keystone.View(req,res);   
    var locals = res.locals;

    locals.section = 'teaching';
    locals.data = {
        teachingData : []
    };

    view.on('init',function(next){
        var teaching = Teaching.model.find();
        teaching.exec(function(err,results){
           locals.data.teachingData = results;
           //console.log(locals.data.teachingData);
           next(err);
        });
    });
    view.render('teaching');     
}
import React from 'react';
import { css, StyleSheet } from 'aphrodite/no-important';
import { Container } from '../../elemental';
import theme from '../../../theme';

var Footer = React.createClass({
displayName: 'Footer',
propTypes: {
    appversion: React.PropTypes.string,
    backUrl: React.PropTypes.string,
    brand: React.PropTypes.string,
    user: React.PropTypes.object,
    User: React.PropTypes.object, // eslint-disable-line react/sort-prop-types
    version: React.PropTypes.string,
},
// Render the user
renderUser () {
    const { User, user } = this.props;
    if (!user) return null;
    return (
        <span>
            <span> Signed in as </span>
            <a href={`${Keystone.adminPath}/${User.path}/${user.id}`} tabIndex="-1" className={css(classes.link)}>
                {user.name}
            </a>
            <span>.</span>
        </span>
    );
},


render () {
        const { backUrl, brand, appversion, version } = this.props;

        return (
            <footer className={css(classes.footer)} data-keystone-footer>
                <Container>
                    <a
                        href={backUrl}
                        tabIndex="-1"
                        className={css(classes.link)}
                    >
                        {brand + (appversion ? (' ' + appversion) : '')}
                    </a>
                    <span> powered by </span>
                    <a
                        href=""
                        target="_blank"
                        className={css(classes.link)}
                        tabIndex="-1"
                    >
                        VK
                    </a>
                    <span> version {version}.</span>
                    {this.renderUser()}
                </Container>
            </footer>
        );
       },
     });
/* eslint quote-props: ["error", "as-needed"] */
const linkHoverAndFocus = {
    color: theme.color.gray60,
    outline: 'none',
};
const classes = StyleSheet.create({
    footer: {
        boxShadow: '0 -1px 0 rgba(0, 0, 0, 0.1)',
        color: theme.color.gray40,
        fontSize: theme.font.size.small,
        paddingBottom: 30,
        paddingTop: 40,
        textAlign: 'center',
    },
    link: {
        color: theme.color.gray60,

        ':hover': linkHoverAndFocus,
        ':focus': linkHoverAndFocus,
    },
});

exports.footer = Footer.renderUser();