SyntaxError: Неожиданная функция токена в асинхронной функции? - PullRequest
0 голосов
/ 27 ноября 2018

Привет всем, я новичок в Nodejs и mongoose. Я пытался вставить и извлечь данные в mongoose. Я использую функцию async await для выполнения по одному (последовательность). Кто-нибудь может мне помочь?Заранее спасибо ....

т.е.: я хочу выполнить (Async await) концепцию (SEQUENCE STEP)

1.подключить БД

2.создать пользователя

3. найти пользователя.

Я получаю сообщение об ошибке:

async function calltaskone(){
      ^^^^^^^^
SyntaxError: Unexpected token function
    at Object.exports.runInThisContext (vm.js:78:16)
    at Module._compile (module.js:543:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3
    
    
    Code for your reference:
    
    
    'use strict';

const mongoose=require('mongoose');


const calldbconnect=()=>{
    return new Promise((resolve,reject)=>{
        if(true){
            mongoose.connect('mongodb://vdsd:vdwdwh12dw3,@ds11dwdw.mlab.com:1w5664/vorganisation',{useNewUrlParser:true},(err,db)=>{
                if(err){
                    console.log(err);
                    reject('Db is not connected');
                }
                else{
                    resolve('Db is connected');
                }
            });
        }
    });
}

const schemadesign=new mongoose.Schema({
    clientName:String,
    clientId:Number,
    clientAddress:String
});


const modeldata=mongoose.model('clientInfo',schemadesign);

const data=[{
    clientName:'VIGNESH Mack',
    clientId:4128,
    clientAddress:'UK'
},{
    clientName:'VIGNESH Tokyo',
    clientId:4988,
    clientAddress:'USA'
}];

function calldatasave(){

    return new Promise((resolve,reject)=>{

        modeldata.create(data,(err,a,b)=>{
            if(err){
                reject(`Error occured while data saved ${err}`);
            }
            else{
                resolve('Data saved successfully');
            }
        });
           
    });
}

const calldatafind=()=>{

    return new Promise((resolve,reject)=>{

        if(true){
            console.log('try to find');
            modeldata.find({'clientId':4988},(err,data)=>{
                if(err){
                    reject(`Error occured while find data: ${err}`)
                }
                else{
                    console.log(data);
                    resolve('Data found');
                }
            });
        }  
    });
}

async function calltaskone(){

    const a=await calldbconnect();
    console.log(a);
    const b=await calldatasave();
    console.log(b);
    const c=await calldatafind();
    console.log(c);

}

calltaskone();

1 Ответ

0 голосов
/ 27 ноября 2018

Я полагаю, вы используете старую версию Node.Асинхронные функции не поддерживаются версиями Node старше, чем версия 7.6.Вы можете проверить здесь .

Если вы хотите использовать async / await, вам нужно выполнить транспланцию, используя Babel для вашей версии узла.

Редактировать:

Как вы сказали, что используете v7.3, вы можете использовать (от v7.0 до v7.5) флаг --harmony, чтобы включить экспериментальные функции.Чтобы узнать больше о флаге, проверьте это: Что делает `node --harmony`?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...