mongoose - 最新版本的 mongoose-validator(1.3 或 1.3.2)给出了 SyntaxError

标签 mongoose syntax-error node-modules validator.js

我的问题是关于 SyntaxError,我是在安装最新版本的 mongoose-validator 后得到的。
我刚刚为一个简单的 MEAN 堆栈应用程序安装了最新版本的 mongoose-validator(1.3 或 1.3.2)。每当我启动节点服务器时,我都会收到一个错误,控制台会在“mongoose-validator.js”文件中看到 3 个函数,并且每个函数都有一个以 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"

我应该怎么做才能解决这个问题?有人可以帮帮我吗?

最佳答案

Mongoose-Validator 库正在使用其余参数语法,并且您的 Node 版本似乎不支持它。您需要使用 6.4 或更高版本。您可以通过运行 node -v 进行检查在你的命令行中。

我建议使用 [NVM][1] (节点版本管理器)升级您的节点运行时。

如果您使用的是 Windows,则有一个单独的 [NVM-Windows][1]包裹。

关于mongoose - 最新版本的 mongoose-validator(1.3 或 1.3.2)给出了 SyntaxError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845866/

相关文章:

mysql - 准备语句语法错误

javascript - 将定义添加到 Typescript 中的现有模块

javascript - 带有 ObjectId 的 Mongoose 中的嵌套数组

typescript - 在没有 'Document' 的情况下从 Mongoose 模式中提取 TS 接口(interface)?

sql - 如何在SQL中对列表进行多次OR匹配?

php - 看看PHP中触发了什么变量的If语句?

node.js - 如何在我的 Electron 应用程序中打包knex以使用sqlite3

javascript - 在不使用 Babel/Webpack 的情况下在 NodeJS 中导入具有绝对路径的 ES6 模块

node.js - Mongoose:在插入新行之前从表中获取最大ID

javascript - 查询子文档 MongoDB Node.JS