Последняя версия mongoose-validator(1.3 или 1.3.2) предоставляет ошибку SyntaxError

Мой вопрос по поводу SyntaxError, который я получаю после установки последней версии mongoose-validator. Я только что установил последнюю версию mongoose-validator(1.3 или 1.3.2) для простого стекового приложения MEAN. Всякий раз, когда я запускаю сервер узла, я получаю сообщение об ошибке, в результате чего консоль видит 3 функции в файле "mongoose-validator.js", и у каждой из этих функций есть параметр, начинающийся с 3 точек ('...param1'), что говорит неожиданно. Удаление точек вызывает некоторые другие ошибки. Кроме того, я не считаю целесообразным вносить какие-либо изменения в узлы-модули. Запуск сервера узла дает следующий SyntaxError.

C:\mean_stack_app\node_modules\mongoose-validator\lib\mongoose-validator.js:14
const omit = function omit(obj, ...keys) {
                                ^^^

SyntaxError: Unexpected token ...
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (C:\mean_stack_app\app\models\user.js:5:16)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (C:\mean_stack_app\app\routes\api.js:1:74)
at Module._compile (module.js:398:26)

user.js: 5: 16

var mongoose = require('mongoose'); //import mongoose
var Schema = mongoose.Schema; //to use mongoose method Schema and store it in var Schema
var bcrypt = require('bcrypt-nodejs');
var titlize = require('mongoose-title-case');
var validate = require('mongoose-validator');

var nameValidator = [
  validate({
    validator: 'matches',
    arguments: /^[a-zA-Z]+$/i
  })
];

api.js: 1: 74

var User = require('../models/user'); 
var jwt = require('jsonwebtoken');

Я установил следующие зависимости в файл package.json вместе с mongoose-validator:

"dependencies": {
    "bcrypt-nodejs": "0.0.3",
    "body-parser": "^1.17.2",
    "express": "^4.15.3",
    "express-session": "^1.15.5",
    "jsonwebtoken": "^7.4.2",
    "mongoose": "^4.11.4",
    "mongoose-title-case": "0.0.4",
    "mongoose-validator": "^1.3.2",
    "morgan": "^1.8.2",
    "passport": "^0.3.2",
    "passport-facebook": "^2.1.1",
    "passport-google-oauth": "^1.0.0",
    "passport-twitter": "^1.0.4"

Что я должен сделать, чтобы исправить эту проблему? Может кто-нибудь, пожалуйста, помогите мне?

1 ответ

Решение

Библиотека Mongoose-Validator использует синтаксис остальных параметров, и она не поддерживается вашей версией Node. Вам нужно использовать версию 6.4 или выше. Вы можете проверить, запустив node -v в вашей командной строке.

Я предлагаю использовать [NVM][1] (Node Version Manager), чтобы обновить среду выполнения вашего узла.

Если вы на Windows, есть отдельный [NVM-Windows][1] пакет.

Другие вопросы по тегам