How to use “await” in sails when creating a new record

て烟熏妆下的殇ゞ 提交于 2019-12-01 10:58:30

SyntaxError: await is only valid in async function

This is because you are using await in a function that is not async

Remember, the await keyword is only valid inside async functions. If you use it outside of an async function's body, you will get a SyntaxError.

Source MDN async function

You need to make the function async for it to work. Making those changes in your code,

'use strict';

create: async function(req, res, next) {
        var new_place = await Place.create({ ... }, function place_created(err, XX) {
            if (err && err.invalidAttributes) {
                return res.json({ 'status': false, 'errors': err.Errors });
            }
        }).fetch();
        if (new_place) {
            console.log(new_place);
            res.json({ 'status': true, 'result': new_place });
        }
    },

I think you should make your function async.

 async(function(){
   var new_place = await Place.create({...})
})();

And if you are using await you should not use callbacks. You should manage the response as explained here

Also you can check this guide of how to manage async in sail.js

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!