2017-09-13 114 views
2

我想使用Objection.js和knex.js將新對象添加到表中。我寫了這個代碼:如何使用objection.js和knex.js將新對象添加到表中?

const Provider = require('../models/provider); 

Provider 
.query() 
.where('ProviderName', name) 
.then((data) => { 
    if (data.length === 0) { 
    Provider 
     .query() 
     .insert({ ProviderName: name, 
     ProviderWebSite: webSite, 
     ProviderContact: contact, 
     ProviderStatus: status }) 
     .then(() => { 
     res.render('results', { result: req.body }); 
     }); 
    } else { 
    res.render('results1'); 
    } 
}) 
.catch(() => { 
    res.render('404'); 
}); 

,頁面仍然重裝,我沒有得到的頁面results和表仍然爲空的問題。

回答

1

你似乎缺少從你的諾言鏈至少一個返回,而是要明白爲什麼失敗,你將需要打印輸出被拋出什麼錯誤的錯誤時,你的catch塊發射404

也許這給你有點更多信息:

const Provider = require('../models/provider'); 

Provider 
    .query() 
    .where('ProviderName', name) 
    .first() 
    .then(result => { 
    if (!result) { 
     return Provider 
     .query() 
     .insertAndFetch({ 
      ProviderName: name, 
      ProviderWebSite: webSite, 
      ProviderContact: contact, 
      ProviderStatus: status 
     }); 
     } 
     return result; 
    }) 
    .then(() => { 
    // before rendering views, making sure that correct data was fetched 
    res.send('result ' + JSON.stringify(result, null, 2)); 
    }) 
    .catch(err => { 
    // print out error to be able to debug your problem 
    res.send('404 ' + err.stack); 
    }); 
相關問題