Search code examples
node.jsexpresspassport.jspassport-local

Not able to import passport-local-mongoose


I am getting this error even after everything is correct. I have crossed checked everything from tutorial, even how modules are exported line by line. MongoDB shell is running in background.

xyz/authdemo/node_modules/passport-local-mongoose/index.js:125

  .then(({ user }) => {
         ^


SyntaxError: Unexpected token {

at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417: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> (/home/sidhant/Proj/web/authentication/authdemo/app.js:6:28)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

Here is my app.js

var express                 = require("express"),
    mongoose                = require("mongoose"),
    passport                = require("passport"),
    bodyParser              = require("body-parser"),
    LocalStrategy           = require("passport-local"),
    passportLocalMongoose   = require("passport-local-mongoose");

mongoose.connect("mongodb://localhost/auth_demo_app");

var app = express();

app.set("view engine", "ejs");

app.get("/", function(req, res){
    res.render("home");
});

app.get("/secret", function(req, res){
    res.render("secret");   
})

app.listen(3000, function(){
    console.log("Authentication server started");
});

Please correct the code and point out the mistake. Thanks.


Solution

  • Arrow functions are supported starting from node 6.4.1.

    You can find more information about supported functions by version at http://node.green/

    Update your node installation and the error will disappear