ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-TypeError:SimpleSchema不是流星1.6项目中的构造函数

2019-11-09 01:46:05  阅读:236  来源: 互联网

标签:typescript reactjs meteor javascript simpl-schema


我正在流星中为员工集合创建一个SimpleSchema,并且在服务器控制台中出现错误“ TypeError:SimpleSchema不是构造函数”.我已经遍历了SimpleSchema文档,并且有了该构造函数,我的代码与他们的示例相同.不知道为什么会出现此错误.

服务器控制台错误

W20180516-23:44:46.314(2)? (STDERR) /Users/anarayan/.meteor/packages/meteor-tool/.1.6.1_1.1rttc72.ip8ui++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
W20180516-23:44:46.315(2)? (STDERR)                         throw(ex);
W20180516-23:44:46.315(2)? (STDERR)                         ^
W20180516-23:44:46.316(2)? (STDERR) 
W20180516-23:44:46.316(2)? (STDERR) TypeError: SimpleSchema is not a constructor
W20180516-23:44:46.316(2)? (STDERR)     at Staffs.js (imports/api/Staffs/Staffs.js:20:17)
W20180516-23:44:46.317(2)? (STDERR)     at fileEvaluate (packages/modules-runtime.js:343:9)
W20180516-23:44:46.317(2)? (STDERR)     at require (packages/modules-runtime.js:238:16)
W20180516-23:44:46.318(2)? (STDERR)     at methods.js (imports/api/Staffs/methods.js:1:193)
W20180516-23:44:46.318(2)? (STDERR)     at fileEvaluate (packages/modules-runtime.js:343:9)
W20180516-23:44:46.318(2)? (STDERR)     at require (packages/modules-runtime.js:238:16)
W20180516-23:44:46.319(2)? (STDERR)     at api.js (imports/startup/both/api.js:1:67)
W20180516-23:44:46.319(2)? (STDERR)     at fileEvaluate (packages/modules-runtime.js:343:9)
W20180516-23:44:46.319(2)? (STDERR)     at require (packages/modules-runtime.js:238:16)
W20180516-23:44:46.320(2)? (STDERR)     at index.js (imports/startup/server/index.js:1:50)
W20180516-23:44:46.320(2)? (STDERR)     at fileEvaluate (packages/modules-runtime.js:343:9)
W20180516-23:44:46.320(2)? (STDERR)     at require (packages/modules-runtime.js:238:16)
W20180516-23:44:46.321(2)? (STDERR)     at main.js (server/main.js:1:14)
W20180516-23:44:46.321(2)? (STDERR)     at fileEvaluate (packages/modules-runtime.js:343:9)
W20180516-23:44:46.321(2)? (STDERR)     at require (packages/modules-runtime.js:238:16)
W20180516-23:44:46.322(2)? (STDERR)     at /Users/anarayan/project/BusApp/.meteor/local/build/programs/server/app/app.js:7391:1
W20180516-23:44:46.323(2)? (STDERR)     at /Users/anarayan/project/BusApp/.meteor/local/build/programs/server/boot.js:411:36
W20180516-23:44:46.323(2)? (STDERR)     at Array.forEach (<anonymous>)
W20180516-23:44:46.323(2)? (STDERR)     at /Users/anarayan/project/BusApp/.meteor/local/build/programs/server/boot.js:220:19
W20180516-23:44:46.324(2)? (STDERR)     at /Users/anarayan/project/BusApp/.meteor/local/build/programs/server/boot.js:471:5
W20180516-23:44:46.324(2)? (STDERR)     at Function.run (/Users/anarayan/project/BusApp/.meteor/local/build/programs/server/profile.js:510:12)
W20180516-23:44:46.324(2)? (STDERR)     at /Users/anarayan/project/BusApp/.meteor/local/build/programs/server/boot.js:470:11

这是班级

/* eslint-disable consistent-return */

import { Mongo } from 'meteor/mongo';
import { SimpleSchema } from 'simpl-schema';

const Staffs = new Mongo.Collection('staffs');

Staffs.allow({
  insert: () => false,
  update: () => false,
  remove: () => false,
});

Staffs.deny({
  insert: () => true,
  update: () => true,
  remove: () => true,
});

Staffs.schema = new SimpleSchema({
  name: {
    type: String,
    label: 'Staff Name',
  },
  email: {
    type: String,
    label: 'Staff email id',
  },
  mobile: {
    type: String,
    label: 'Staff mobile number',
  },
  status: {
    type: String,
    label: 'Staff Status',
  },
  role: {
    type: String,
    label: 'Role name',
  },
  location: {
    type: String,
    label: 'Location from where staff belongs',
  },
  createdAt: {
    type: String,
    label: 'The date this document was created.',
    autoValue() {
      if (this.isInsert) return (new Date()).toISOString();
    },
  },
  updatedAt: {
    type: String,
    label: 'The date this document was last updated.',
    autoValue() {
      if (this.isInsert || this.isUpdate) return (new Date()).toISOString();
    },
  },
});

Staffs.attachSchema(Staffs.schema);

export default Staffs;

谢谢你的协助.

解决方法:

您需要导入不带大括号的软件包,因为它已导出到公共as default export

import SimpleSchema from 'simpl-schema'; 

因此,您甚至可以通过以下方式导入它:

import MyRenamedSchema from 'simpl-schema'; 

然后可以由另一个命名构造函数new MyRenamedSchema调用

资源资源

文档快速入门:

https://github.com/aldeed/simple-schema-js/blob/master/README.md#quick-start

出口类型:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export

标签:typescript,reactjs,meteor,javascript,simpl-schema
来源: https://codeday.me/bug/20191109/2010968.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有