2017-08-23 23 views
1

我的問題是關於SyntaxError,我在安裝最新版本的mongoose-validator後得到了。 我剛剛爲簡單的MEAN堆棧應用程序安裝了mongoose-validator(1.3或1.3.2)的最新版本。每當我啓動節點服務器時,出現錯誤,控制檯在「mongoose-validator.js」文件中看到3個函數,每個函數都有一個以3個點開始的參數('... param1' ),它說這是意想不到的。刪除點帶來了一些其他的錯誤。另外,我認爲在節點模塊中進行任何更改都不合適。啓動節點服務器會出現以下SyntaxError錯誤。最新版本的mongoose-validator(1.3或1.3.2)給出了一個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-沿驗證者:

"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" 

我應該怎麼做fi x這個問題?有人可以幫幫我嗎?

+0

您使用的是什麼版本的節點?該庫正在使用其餘參數語法,並且它似乎不受Node版本的支持。您需要使用版本6.4或更高版本。您可以通過在命令行中運行'node -v'來檢查。 –

+0

好的。我正在使用v5.3.0如何在windows的命令提示符下使用npm安裝節點的新版本? – Anjy

+0

如果我的答案解決了您的問題,請將其標記爲如此。謝謝。 –

回答

0

Mongoose-Validator庫正在使用其餘參數語法,並且它似乎不受Node版本的支持。您需要使用版本6.4或更高版本。您可以通過在命令行中運行node -v來檢查。

我建議使用[NVM][1](Node Version Manager)來升級您的節點運行時。

如果您在Windows上,則有一個單獨的[NVM-Windows][1]包。

相關問題