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

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

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

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();
0
demo developers 27 Ноя 2018 в 20:45

1 ответ

Лучший ответ

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

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

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

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

3
Aritra Chakraborty 27 Ноя 2018 в 18:16