无法在另一个js文件中加载自定义mongoose模式

时间:2017-06-22 09:43:58

标签: javascript node.js mongoose

我是这个项目文件夹结构:

Project folder structure -> see the image

我尝试在用户ctrl中导入我的用户架构,但是当我启动nodemon时,users.ctrl.js给了我这个错误:

const {Users} = require('users.schema');

      ^

SyntaxError: Unexpected token 

这是用户架构:

const mongoose = require('mongoose');
const validator = require('validator');
// {
//   email: 'andrew@example.com',
//   password: 'adpsofijasdfmpoijwerew',
//   tokens: [{
//     access: 'auth',
//     token: 'poijasdpfoimasdpfjiweproijwer'
//   }]
// }
var Users = mongoose.model('Users', {
  email: {
    type: String,
    required: true,
    trim: true,
    minlength: 1,
    unique: true,
    validate: {
      validator: validator.isEmail,
      message: '{VALUE} is not a valid email'
    }
  },
  password: {
    type: String,
    required: true,
    minlength: 6
  },
  tokens: [{
    access: {
      type: String,
      required: true
    },
    token: {
      type: String,
      required: true
    }
  }]
});
module.exports = {Users}
And this is the user ctrl:

const mongoose = require('mongoose');
const {Users} = require('users.schema');

getAll = (req, res) => {
  // let id = req.params.userId;
  console.log('GET all cards');
  Users
    .find()
    .select('users')
    .exec((err, doc) => {
      console.log('Risultato: ', doc);
    });
};

module.exports = {
  getAll
};

这是用户ctrl:

const mongoose = require('mongoose');
const {Users} = require('users.schema');

getAll = (req, res) => {
  // let id = req.params.userId;
  console.log('GET all cards');
  Users
    .find()
    .select('users')
    .exec((err, doc) => {
      console.log('Risultato: ', doc);
    });
};

module.exports = {
  getAll
};

我哪里错了?有什么东西逃脱了我吗?

2 个答案:

答案 0 :(得分:0)

默认情况下,节点对应于存储节点包的/node_modules。因此,使用相对路径名来访问文件require(./filename)

答案 1 :(得分:0)

我解决了这个问题:

在目前的电脑上,我使用的是节点版本号5.0.7。要使用新的ecma6功能,我需要安装v 8.0 .... 安装版本后我解决了问题安装版本后我解决了问题